Сервисы

Калькулятор: сколько дней осталось

Калькулятор «Сколько дней до даты»

Считает, сколько дней осталось до указанной даты (или сколько дней прошло). Начальная дата по умолчанию — сегодня.

Начальная дата

Конечная дата


Логика вычислений

Калькулятор определяет, сколько дней между начальной и конечной датами. Если конечная дата позже начальной — это дни «до даты», если раньше — дни, которые уже прошли. По умолчанию начальной датой считается сегодняшний день. На основе разницы в днях рассчитываются ещё три величины: число недель, количество рабочих дней (пн–пт) и разбивка интервала на годы, месяцы и дни.

Сначала вычисляется целое число дней между датами. Время суток не учитывается — берутся только календарные даты:

D = (T_к − T_н) / 86 400 000

где:

  • D — разница в днях (со знаком: плюс — дата впереди, минус — дата прошла), дн;
  • T_н, T_к — начальная и конечная даты, выраженные в миллисекундах от начала отсчёта;
  • 86 400 000 — число миллисекунд в одних сутках (24 × 60 × 60 × 1000).

Для всех остальных величин используется модуль разницы, то есть абсолютное число дней без учёта знака:

D_абс = |D|

где:

  • D_абс — абсолютное число дней между датами, дн.

Число недель — это количество дней, делённое на семь:

W = D_абс / 7

где:

  • W — число недель в интервале, нед.

Рабочие дни считаются перебором всех суток интервала: каждый день проверяется по дню недели, и в счёт идут только понедельник–пятница, а суббота и воскресенье отбрасываются:

D_раб = (число суток интервала, выпавших на пн–пт)

где:

  • D_раб — количество рабочих дней (пн–пт) в интервале, дн.

Наконец, интервал раскладывается на годы, месяцы и дни. Сначала берётся разность по годам, месяцам и числам месяца; если день конечной даты меньше дня начальной, занимается один месяц (к дням добавляется длина предыдущего месяца), а если после этого месяцев получилось меньше нуля — занимается один год (к месяцам прибавляется 12):

D_абс → (Y лет, M месяцев, d дней)

где:

  • Y — число полных лет в интервале, лет;
  • M — число полных месяцев сверх лет, мес (от 0 до 11);
  • d — число дней сверх полных месяцев, дн.

Примеры расчётов

Начальная дата Конечная дата Разница D, дн Недели W, нед Рабочие дни D_раб, дн Годы/месяцы/дни Результат Комментарий
19.06.2026 26.06.2026 +7 7 ÷ 7 = 1,0 5 0 л 0 мес 7 дн 7 дней до даты Ровно одна неделя вперёд; в неё попадают 5 будних дней.
19.06.2026 19.07.2026 +30 30 ÷ 7 ≈ 4,29 21 0 л 1 мес 0 дн 30 дней до даты Целый календарный месяц; разложение даёт ровно 1 месяц.
01.06.2026 31.12.2026 +213 213 ÷ 7 ≈ 30,43 153 0 л 6 мес 30 дн 213 дней до даты Полгода с хвостом; день конца меньше дня начала — занят месяц.
01.01.2026 01.01.2027 +365 365 ÷ 7 ≈ 52,14 261 1 г 0 мес 0 дн 365 дней до даты Ровно один невисокосный год.
19.06.2026 19.06.2024 −730 730 ÷ 7 ≈ 104,29 522 2 г 0 мес 0 дн 730 дней прошло Конец раньше начала — знак минус, дата уже в прошлом.
01.02.2020 19.06.2026 +2330 2330 ÷ 7 ≈ 332,86 1664 6 л 4 мес 18 дн 2330 дней до даты Длинный интервал через несколько лет, включая високосные.
Рекомендуем