Добавляем дни, часы и минуты и возвращаем общее количество в процентах от JS - PullRequest
0 голосов
/ 29 сентября 2019

Как рассчитать общее количество дней, часов и минут и вернуть в процентах за год?

У меня есть следующий массив:

const calculateTime = [
  {
    title: 'a',
    days: 9, 
    hours: 22,
    minutes: 32,
  },
  {
    title: 'b',
    days: 3,
    hours: 14,
    minutes: 0,
  },
  {
    title: 'c',
    days: 6,
    hours: 8,
    minutes: 0,
  }
]

Я новичок в JS, поэтому у меня возникли трудности с решением проблемы.Я пытался конвертировать в милисекунды. Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 29 сентября 2019

Вы можете преобразовать все элементы в наименьшую единицу (минуты в вашем случае), а затем разделить на год, выраженный в той же единице:

const calculateTime = [{title: 'a',days: 9,hours: 22,minutes: 32,},{title: 'b',days: 3,hours: 14,minutes: 0,},{title: 'c',days: 6,hours: 8,minutes: 0,}];

for (let {title, days, hours, minutes} of calculateTime) {
    let fraction = ((days*24 + hours)*60 + minutes) / (365*24*60);
    console.log(title, (fraction * 100).toFixed(2)+"%");
}

Несколько замечаний:

  • Год может иметь високосный день.Это не входит в это решение, поскольку фактический год не указан.
  • Переход на летнее время (DST) может составлять один день, имеющий только 23 часа, и еще 25. Кроме того, это не учитывается, так какХарактеристики DST зависят от области.
0 голосов
/ 29 сентября 2019

Вы можете сделать это так:)

// It will do: for each element days + hours + minutes as year percentage
for (let {title, days, hours, minutes} of calculateTime) {
  dayTime = days + hours / 24 + minutes / 3600;
  console.log(dayTime * 100 / 365);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...