Что делает этот калькулятор
Калькулятор прибавления месяцев к дате берёт любую исходную дату и сдвигает её вперёд (или назад — если ввести отрицательное значение) на целое число месяцев. В ответ вы получаете точную календарную дату. Прибавление месяцев устроено сложнее, чем добавление фиксированного количества дней: если итоговый месяц короче исходного, нужна особая обработка — и наш инструмент делает это автоматически.
Как пользоваться
Выберите исходную дату, укажите, сколько месяцев нужно прибавить (отрицательное число сдвигает дату в прошлое), и сразу увидите результат. В таблице с разбором показаны итоговые год, месяц и день, а также отметка о том, что число было перенесено на конец месяца.
Как работает формула
Порядковый номер месяца в календаре вычисляется как \((\text{год} \times 12) + (\text{месяц} - 1) + N\). Деление на 12 даёт новый год, а остаток — новый месяц. Число дня остаётся прежним — если только его не существует в новом месяце. Общая формула:
$$\text{Result} = \text{Date}(Y,\ M+N,\ \min(D,\ \text{lastDay}(Y,\ M+N)))$$
где
$$M_{new} = ((M-1)+N) \bmod 12 + 1$$
$$D_{new} = \min(D,\ \text{lastDay}(Y_{new},\ M_{new}))$$
Например, 31 января + 1 месяц не может превратиться в «31 февраля», поэтому день переносится на последний доступный (28 или 29). Так же работает большинство функций для дат в электронных таблицах и программных библиотеках.
Разбор на примере
Исходная дата — 2024-01-31, прибавляем 1 месяц. Целевой месяц — февраль 2024 года, високосного, в котором 29 дней. Поскольку \(31 > 29\), день переносится на 29, и получаем 2024-02-29.
Частые вопросы
Что происходит в конце месяца? Если исходного числа нет в целевом месяце, дата автоматически переносится на его последний день.
Можно ли вычитать месяцы? Да — введите отрицательное число, например -3, чтобы вернуться на три месяца назад.
Учитываются ли високосные годы? Да. Расчёт последнего дня месяца автоматически учитывает високосные годы, поэтому прибавление месяца к 31 января даёт 29 февраля в високосный год и 28 февраля в обычный.
Дни в каждом месяце
Поскольку месяцы различаются по длительности, день, с которого вы начинаете, может не существовать в целевом месяце. Справочная информация ниже содержит список количества дней в каждом месяце григорианского календаря.
| # | Месяц | Дни |
|---|---|---|
| 1 | Январь | 31 |
| 2 | Февраль | 28 (29 в високосный год) |
| 3 | Март | 31 |
| 4 | Апрель | 30 |
| 5 | Май | 31 |
| 6 | Июнь | 30 |
| 7 | Июль | 31 |
| 8 | Август | 31 |
| 9 | Сентябрь | 30 |
| 10 | Октябрь | 31 |
| 11 | Ноябрь | 30 |
| 12 | Декабрь | 31 |
Четыре месяца, в которых 30 дней, — это апрель, июнь, сентябрь и ноябрь; остальные месяцы имеют 31 день, кроме февраля. Февраль — единственный месяц, длительность которого меняется: он имеет 29 дней в високосный год и 28 дней в остальные годы.
Как определяются високосные годы
По григорианскому календарю год является високосным, если он удовлетворяет этим правилам:
- Год делится на 4 и
- он не делится на 100, если только
- он также делится на 400.
Таким образом, 2020 и 2024 — високосные годы (делятся на 4, но не на 100). Год 1900 не был високосным (делится на 100, но не на 400), а 2000 был високосным (делится на 400). Поэтому \(31\ \text{янв} + 1\) месяц дает 28 февраля в 2023 году, но 29 февраля в 2024 году.