Калькулятор дней до весны
Расчёт количества дней, недель, месяцев и часов от сегодняшней даты до начала весны (1 марта в РФ). Можно указать свою дату начала весны.
Логика вычислений
Калькулятор определяет, сколько времени осталось от сегодняшней даты до начала весны, и выражает этот промежуток в разных единицах: днях, неделях, месяцах, часах и рабочих днях. По умолчанию целевой датой берётся ближайшее 1 марта, но её можно задать вручную.
Сначала определяется целевая дата. Если ближайшее 1 марта текущего года ещё не наступило — берётся оно, иначе 1 марта следующего года:
D_цель = ближайшее 1 марта ≥ D_сег
где:
- D_цель — дата начала весны, к которой ведётся отсчёт;
- D_сег — сегодняшняя дата (без учёта времени суток).
Основная величина — количество полных суток между сегодняшним днём и целевой датой:
N_дн = (D_цель − D_сег) / 86 400 000
где:
- N_дн — количество дней до весны, дн;
- 86 400 000 — число миллисекунд в сутках (24 × 60 × 60 × 1000), на которое делится разница дат для перевода в дни.
Дальше это число суток раскладывается по более крупным и мелким единицам. Недели и остаток дней:
N_нед = ⌊ N_дн / 7 ⌋ R_нед = N_дн mod 7
где:
- N_нед — число полных недель, нед;
- R_нед — остаток дней сверх полных недель, дн;
- ⌊ ⌋ — округление вниз (берётся целая часть), mod — остаток от деления.
Аналогично считаются месяцы (условно по 30 дней) и остаток дней:
N_мес = ⌊ N_дн / 30 ⌋ R_мес = N_дн mod 30
где:
- N_мес — число условных месяцев по 30 дней, мес;
- R_мес — остаток дней сверх полных месяцев, дн.
Часы получаются прямым умножением числа суток на 24:
N_час = N_дн × 24
где:
- N_час — количество часов до весны, ч.
Отдельно подсчитываются только рабочие дни — это сумма всех суток в промежутке, выпадающих на будни (с понедельника по пятницу); суббота и воскресенье не учитываются:
N_раб = количество дней с D_сег до D_цель, выпадающих на пн–пт
где:
- N_раб — количество рабочих дней в промежутке, дн.
Примеры расчётов
| N_дн, дн | Недели (N_нед + R_нед) | Месяцы (N_мес + R_мес) | Часы N_час, ч | Результат | Комментарий |
|---|---|---|---|---|---|
| 7 | 1 нед + 0 дн | 0 мес + 7 дн | 7 × 24 = 168 | 7 дн | Ровно одна неделя, остаток нулевой |
| 10 | 1 нед + 3 дн | 0 мес + 10 дн | 10 × 24 = 240 | 10 дн | Меньше месяца, недели с остатком |
| 30 | 4 нед + 2 дн | 1 мес + 0 дн | 30 × 24 = 720 | 30 дн | Ровно один условный месяц |
| 45 | 6 нед + 3 дн | 1 мес + 15 дн | 45 × 24 = 1080 | 45 дн | Полтора условных месяца |
| 60 | 8 нед + 4 дн | 2 мес + 0 дн | 60 × 24 = 1440 | 60 дн | Ровно два условных месяца |
| 90 | 12 нед + 6 дн | 3 мес + 0 дн | 90 × 24 = 2160 | 90 дн | Круглые три месяца, почти максимум отсчёта |
| 100 | 14 нед + 2 дн | 3 мес + 10 дн | 100 × 24 = 2400 | 100 дн | Большой промежуток сразу после начала весны |
