@okuznetsov1

Как на javascrirt реализовать сложение нескольких времён (временных меток)?

В массиве имеются времена [ '06:46', '06:57', '07:09' и т.д. ] требуется посчитать общее время.
  • Вопрос задан
  • 170 просмотров
Решения вопроса 2
@RxR
Ответ написан
Комментировать
https://jsfiddle.net/Predve4niy/0nu0wj65/
+
const getTimeAmount = (...timeArr) => {
  let allTime = 0
  timeArr.forEach(time => allTime += hourToMinutes(time))
  
  return minutesToHour(allTime)
}


Как вычислить среднее значение между двумя временными метками?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
delphinpro
@delphinpro
frontend developer
Посмотрите внимательно на цифры. Вы должны увидеть, что это двухразрядные числа в 60-ричной системе счисления (СС). Нам удобно складывать числа в 10-ричной системе.
Формула перевода чисел из любой СС в десятиричную думаю вам известна
P*C^n1 + P*C^n0
где Р - разряд числа, С - система счисления, n1, n0 - порядковые номера разрядов
Для перевода числа из 10-ричной в другую систему, нужно просто делить искомое число на целевую систему счисления до неделимого остатка.
Теорию вспомнили, можем писать

06:46 = 06*60^1 + 46*60^0 = 6*60+46*1 = 360+46 = 406
07:09 = 07*60^1 + 09*60^0 = 7*60+09*1 = 420+09 = 429
406+429 = 835

Теперь переводим обратно в 60-ричную систему

835/60 = 13(55) = 13:55

Как легко можно заметить, время является частным случаем с фиксированным числом разрядов (два разряда - если час-минута, три - если час-минута-секунда), а значит формулу можно сильно упростить. Особенно если заметить, что мы только что просто-напросто перевели время в количество минут.

Ну по крайней мере освежили теоретические знания по системам счисления. Если конечно, было что освежать =))
Ответ написан
Комментировать
ArtamonovDenis
@ArtamonovDenis
Веб-разработчик
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы