Что считает этот калькулятор
Инструмент вычисляет точный промежуток времени между начальной и конечной датой со временем (конец минус начало). Результат выдаётся сразу в нескольких равнозначных форматах: всего дней, разбивка «недели + дни», разбивка «дни + часы», всего часов, всего минут, всего секунд, а также наглядная запись «дни + ЧЧ:ММ:СС». Расчёт работает для любой даты по пролептическому григорианскому календарю, поэтому он универсален и не привязан к какой-либо стране.
Как пользоваться
Укажите год, месяц, день и (при желании) часы, минуты и секунды начальной даты, а затем сделайте то же самое для конечной даты со временем. Если вас интересуют только целые дни, оставьте поля времени равными 0. В выпадающем списке «эра» по умолчанию выбран вариант н. э. (западный год) — введённый год используется напрямую. Варианты японских императорских эр (Мэйдзи, Тайсё, Сёва, Хэйсэй, Рэйва) — это региональное удобство: они просто прибавляют фиксированное смещение, переводя введённый год в западный до начала расчётов, поэтому итоговый результат не зависит от выбора эры.
Как устроена формула
Каждая дата переводится в юлианский день (JDN) по алгоритму Флигеля — Ван Фландерна, который даёт непрерывный счёт целых дней и корректно учитывает високосные годы (включая правило для столетий) и разную длину месяцев. Время суток добавляется в секундах. Прошедшие секунды считаются как
$$\Delta t = \left(\text{JDN}_{e} - \text{JDN}_{s}\right)\cdot 86400 + \left(T_{e} - T_{s}\right)$$где
$$\left\{ \begin{aligned} T_{s} &= 3600\,\text{Start Hour} + 60\,\text{Start Min} + \text{Start Sec} \\ T_{e} &= 3600\,\text{End Hour} + 60\,\text{End Min} + \text{End Sec} \end{aligned} \right.$$а все остальные единицы получаются делением или разбивкой этого единого числа. Сам юлианский день вычисляется так:
$$\text{JDN} = D + \left\lfloor \frac{153m + 2}{5} \right\rfloor + 365y + \left\lfloor \frac{y}{4} \right\rfloor - \left\lfloor \frac{y}{100} \right\rfloor + \left\lfloor \frac{y}{400} \right\rfloor - 32045$$где
$$\left\{ \begin{aligned} a &= \left\lfloor \frac{14 - M}{12} \right\rfloor \\ y &= Y + 4800 - a \\ m &= M + 12a - 3 \end{aligned} \right.$$
Разбор примера
Начало: 01.01.2024, 00:00:00. Конец: 01.03.2024, 12:00:00. Поскольку 2024 год високосный, январь (31) плюс февраль (29) дают 60 полных дней, плюс полдня за 12:00, то есть разница составляет \(60{,}5\) дня \(= 5\,227\,200\) секунд \(= 1\,452\) часа \(= 87\,120\) минут. В виде разбивки это 8 недель + 4 дня или 60 дней + 12:00:00.
Частые вопросы
Может ли результат быть отрицательным? Да. Если конечная дата раньше начальной, итоговые значения будут отрицательными, а строки разбивки показывают величину по модулю.
Учитываются ли обе крайние даты? Нет. Калькулятор измеряет прошедший интервал (конец минус начало), а не включающее счётчик дней с обеих сторон.
Учитываются ли високосные годы? Да, автоматически, включая правило, по которому годы, кратные 100, не являются високосными, если они при этом не кратны 400.