Время считают через 60
Время не считают десятками. В минуте 60 секунд, в часе 60 минут, поэтому обычное сложение столбиком работает только тогда, когда перенос и заём идут по 60, а не по 10. Именно здесь чаще всего ошибаются, складывая часы в табеле или считая длительность поездки, и калькулятор показывает этот шаг полностью, разряд за разрядом, рядом с ответом.
Что вводить
В каждой строке три поля — часы, минуты и секунды — и, начиная со второй строки, выбор + или −. Пустое поле считается нулём. Строк можно добавить до 20 — этого хватит, чтобы сложить целую неделю смен или длинный список времён на дорожке за один раз. Первая строка всегда начальное значение и своего знака не имеет — прибавлять или вычитать её не из чего.
Каждое поле принимает целое число от 0 и выше; всё остальное — точка, буква, введённый знак минуса — отклоняется с сообщением у этого поля, и строка не учитывается в итоге, пока её не исправят. Есть одна проверка диапазона: поле часов больше 1 000 000 тоже отклоняется — этого более чем достаточно для любого реального табеля или забега.
Как устроен расчёт
Под видимым решением калькулятор делает кое-что проще столбикового счёта: переводит каждую строку в одно число секунд (часы × 3600 + минуты × 60 + секунды), прибавляет или вычитает это число по знаку строки и затем раскладывает итоговую сумму секунд обратно на часы, минуты и секунды. Эта сумма в секундах не может ошибиться так, как ошибается ручной перенос, поэтому по ней и проверяется решение по разрядам.
Само решение по разрядам идёт от меньшей единицы к большей, как считают вручную: секунды всех строк складываются (прибавляются при знаке +, вычитаются при знаке −); если сумма 60 или больше, на каждые 60 секунд переносится 1 минута, если отрицательна — минута занимается. Минуты строк складываются вместе с переносом или займом от секунд, и то же правило переноса и займа действует при переходе к часам. Часы строк складываются с переносом или займом от минут — это и есть итоговое число часов.
Поле минут или секунд больше 59 — например, 90 минут вместо 1 ч 30 мин — принимается как есть и сворачивается в старшую единицу на этом же шаге переноса, переводить его заранее самому не нужно.
Пример: сложение двух длительностей
2 ч 48 мин 35 с + 1 ч 25 мин 40 с. Секунды: 35 + 40 = 75 с — это 1 минута и 15 секунд, пишем 15, переносим 1. Минуты: 48 + 25 + 1 = 74 мин — это 1 час и 14 минут, пишем 14, переносим 1. Часы: 2 + 1 + 1 = 4. Итого 4 ч 14 мин 15 с — 15 255 секунд, что подтверждает и число общих секунд в результате, независимо от решения по разрядам.
Пример: вычитание длительности
Вычтите 1 ч 25 мин 40 с из 3 ч 10 мин 20 с (первой строкой введите 3 ч 10 мин 20 с, второй — 1 ч 25 мин 40 с со знаком −). Секунды: 20 − 40 было бы отрицательным, занимаем минуту: 80 − 40 = 40 с. Минуты: после займа осталось 9, а 9 − 25 снова отрицательно, занимаем час: 69 − 25 = 44 мин. Часы: 3 − 1 − 1 = 1. Ответ: 1 ч 44 мин 40 с, или 6280 секунд.
Пример: смена через полночь
Калькулятор складывает и вычитает длительности, а не время на часах, поэтому смену с 22:30 до 06:15 следующего дня нужно записать так, будто часы продолжали считать после 24: время окончания — 30:15:00. Введите 30 ч 15 мин первой строкой и вычтите 22 ч 30 мин: 30:15:00 − 22:30:00 = 7 ч 45 мин — ровно столько фактически отработано.
Пример: смена с обедом
Рабочий день с 9:00 до 17:30 с неоплачиваемым получасовым обедом — это два вычитания из одного начала: 17 ч 30 мин минус 9 ч 0 мин минус 0 ч 30 мин. По разрядам получается 8 ч 0 мин 0 с — 28 800 секунд, или 8,00 десятичных часа, готовых для табеля.
Как читать результат
Панель результата показывает одну и ту же длительность пятью способами: ч:мм:сс, итог в сутках и часах, общее число секунд, общее число минут и десятичные часы. Десятичные часы — это то, что обычно нужно для зарплаты и счетов: одно число вместо часов и минут. Считается так: минуты делённые на 60 плюс секунды делённые на 3600, прибавленные к часам — 7 ч 45 мин это 7 + 45 ÷ 60 = 7,75 часа. Калькулятор считает это с точностью до четырёх знаков после запятой, а числа общих минут и секунд под ним — та же сумма в более мелких единицах, полезная, например, для длительности видео в секундах.
Особые случаи
Отрицательный результат: если строки на вычитание перевешивают строки на сложение, итог, значение ч:мм:сс и число суток показываются со знаком минус впереди, а таблица шагов по-прежнему показывает займы, которые привели к отрицательным разрядам.
Пустые поля: пустое поле часов, минут или секунд считается нулём, а не ошибкой. Полностью пустая строка: если в каждой строке все поля пусты, калькулятор просит ввести хотя бы одно время, а не молча возвращает ноль. Не числа: буквы, дробь или введённый знак минуса в любом поле отклоняются с сообщением у этого конкретного поля. Очень большие часы: значение больше 1 000 000 часов в одном поле отклоняется, а не обрезается молча.
Частые ошибки
Принимать минуты за десятичную дробь — читать «1.30» как 1 час 30 минут вместо 1 часа и 30 сотых часа. Минуты и секунды вводятся в свои поля; десятичные часы — это только вид итогового ответа.
Вычитать более позднее время на часах из более раннего, не прибавив сначала 24 часа, — это даёт неверный (или отрицательный) результат для любой смены через полночь.
Забывать, что у первой строки нет знака — это всегда база, к которой прибавляют или из которой вычитают остальные строки, а не значение, которое само прибавляется.
Ограничения
Это калькулятор длительности, а не времени на часах или календарных дат: у него нет понятия календарной даты, часового пояса или обозначений AM/PM, поэтому он не скажет, во сколько закончится встреча, начавшаяся в 14:00, — только сколько времени прошло между заданными вами длительностями. Всё выполняется в браузере, ничего из введённого никуда не отправляется.
Частые применения
Суммирование отработанных за неделю часов, включая перерывы; подсчёт общей длительности видео, треков или уроков; расчёт времени по кругам и оставшегося времени в забеге или на экзамене; вычисление прошедшего времени между двумя моментами в один день или через полночь. Для числа лет, месяцев и дней между двумя календарными датами (а не длительности в часах и минутах) подойдёт калькулятор возраста; для общего отработанного времени в виде лет и месяцев, а не одной смены — калькулятор трудового стажа.