Что делает этот инструмент
Это калькулятор времени по принципу арифмометра (счётной машинки), который ведёт накопительный итог в формате чч:мм:сс (часы:минуты:секунды). Вы вводите значение времени, выбираете сложение или вычитание и нажимаете «Вычислить». Каждая запись применяется к общему итогу, который можно наращивать дальше — точно так же, как настольный арифмометр работает с временем. Это чистая арифметика прошедшего времени, поэтому она одинаково работает где угодно и не зависит от календаря и часовых поясов.
Как пользоваться
Выберите операцию (+ для сложения, − для вычитания), введите время в поле чч:мм:сс и нажмите «Вычислить». Общий итог обновится и отобразится как Итого: чч:мм:сс. Результат последней введённой величины показывается в поле Ответ. Кнопка «Очистить» сбрасывает итог до 00:00:00. В качестве разделителя можно использовать двоеточие, точку, дефис или пробел — поэтому 5:22:10, 5.22.10, 5-22-10 и 5 22 10 означают одно и то же: 5 часов 22 минуты 10 секунд. Пустые позиции считаются нулями: 5.. — это 5 часов, а ..5 — 5 секунд. Минус в начале (например, -1:30:00) делает само значение отрицательным.
Формула
Каждая запись переводится в секунды: $$\text{секундыЗначения} = \text{знак} \times (\text{часы}\times3600 + \text{минуты}\times60 + \text{секунды})$$ Общий итог обновляется так: итог += секундыЗначения при сложении или итог −= секундыЗначения при вычитании. Для вывода берём \(a = |\text{итог}|\), затем $$\text{чч} = \lfloor a/3600\rfloor,\; \text{мм} = \lfloor (a \bmod 3600)/60\rfloor,\; \text{сс} = a \bmod 60$$ добавляя минус, если итог отрицательный. Количество часов при выводе не ограничено.
Разбор примера
Начинаем с 00:00:00. Прибавляем 5.22.10 → \(19330\) с → 05:22:10. Вычитаем .30. (30 минут = \(1800\) с) → \(17530\) с → 04:52:10. Прибавляем -1... (минус 1 час) → \(17530 - 3600 = 13930\) с → 03:52:10.
Частые вопросы
Может ли итог стать отрицательным? Да. Отрицательный итог отображается с минусом впереди, например -01:30:00.
Что будет, если выбрана операция − и при этом у значения есть минус в начале? Знаки перемножаются, поэтому вычитание отрицательного значения равносильно его прибавлению.
Почему минуты и секунды одной записи должны быть меньше 60? Каждая запись — это полноценное «часовое» значение. Перенос разрядов происходит только при нормализации общего итога для вывода — именно поэтому часы могут превышать 99.