Что делает этот калькулятор
Инструмент берёт исходную дату и время и прибавляет (или вычитает) интервал, заданный в днях, часах, минутах и секундах. В ответ вы получаете итоговую календарную дату, время по часам и день недели. Расчёт ведётся по пролептическому григорианскому календарю, и каждая минута считается ровно равной 60 секундам (високосные секунды не учитываются). Сама математика универсальна; необязательный переключатель эпох нужен лишь для того, чтобы можно было ввести год в формате японских императорских эпох — Мэйдзи, Тайсё, Сёва, Хэйсэй или Рэйва, — который перед вычислением переводится в привычный западный год нашей эры.
Как пользоваться
Выберите эпоху (для обычных лет оставьте «Западный календарь (н. э.)»), затем укажите исходные год, месяц, день, час, минуту и секунду. Задайте направление: «Вперёд (+)» сдвигает время в будущее, «Назад (−)» — в прошлое. Введите прошедшие дни, часы, минуты и секунды. Любое ненужное поле оставьте равным 0. Нажмите «Рассчитать», чтобы увидеть итоговую дату-время и день недели.
Как работает формула
Исходная дата переводится в юлианский день (JDN) — непрерывный счёт дней. День объединяется со временем суток в общее количество секунд. К нему прибавляется интервал в секундах со знаком, после чего сумма снова делится на счёт дней и время суток с помощью целочисленного деления вниз — так даже отрицательные сдвиги (вычитание через полночь, границу месяца или года) дают корректную дату. Затем JDN обратно преобразуется в григорианские год, месяц и день, а день недели вычисляется прямо из JDN.
$$\begin{gathered} T_{\text{result}} = T_{\text{start}} + \text{Dir} \cdot \Delta \\[1.5em] \text{where}\quad \left\{ \begin{aligned} Y &= \text{Era} + \text{Year} \\ T_{\text{start}} &= \text{JDN}(Y,\,\text{Mon},\,\text{Day}) \cdot 86400 \\ &\quad + 3600\,\text{Hr} + 60\,\text{Min} + \text{Sec} \\ \Delta &= 86400\,\text{Days} + 3600\,\text{Hrs} \\ &\quad + 60\,\text{Mins} + \text{Secs} \end{aligned} \right. \end{gathered}$$
Разбор примера
Начало — 2024-06-15 00:00:00, направление «Вперёд», интервал 0 дней 11 часов 40 минут 30 секунд. JDN для 2024-06-15 равен \(2\,460\,477\). Прибавление \(42\,030\) секунд оставляет тот же день и даёт время 11:40:30. Результат — 2024-06-15 11:40:30, что приходится на субботу.
$$42\,030 = 3600 \cdot 11 + 60 \cdot 40 + 30$$
Частые вопросы
Учитываются ли високосные годы? Да. Преобразование через юлианский день автоматически применяет полное григорианское правило високосных лет.
Можно ли вычитать время? Да. Выберите «Назад (−)» — весь интервал будет вычтен с корректным переходом через дни, месяцы и годы.
А как насчёт часовых поясов и перехода на летнее время? Расчёт представляет собой чистый календарный момент без поправок на часовой пояс или летнее время, поэтому результаты всегда однозначны.