← Все статьи

Как считать дни между датами

Формулы, примеры и проверка результата

Обычная разность календарных дат — число переходов между ними. С 1 по 10 марта это 9 дней; если учитывать обе даты как дни периода, получится 10.

Посчитать дни между датами можно по-разному: найти разность, включить границы периода, оставить только рабочие дни или измерить точное время между событиями. Сначала выберите смысл задачи. Одинаковые даты при разных правилах вполне могут дать разные правильные ответы.

Посчитать дни между датами

Какие даты включать в период

Для разности дат началом служит первая дата, окончанием — вторая. От 1 марта до 10 марта девять переходов между календарными днями. Так устроена обычная операция «конечная дата минус начальная дата».

Если задача просит перечислить все календарные дни с 1 по 10 марта включительно, в списке будет десять дат. Если исключить обе границы, останутся 2–9 марта, то есть восемь дат. Если включить только одну границу, количество будет девять.

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

Не выбирайте границы по желаемому результату. Прочитайте условие: дни проживания, дни до события и дни действия периода могут считаться по-разному. Калькулятор показывает выбранную математическую модель, но не определяет условия договора, закона или билета.

1–10 марта одного годаДни
Обычная разность9
Обе даты включены10
Обе даты исключены8
Только одна граница включена9

Как влияют високосные годы

В обычном году после 28 февраля идёт 1 марта, поэтому между этими датами один календарный день. В високосном году между ними есть 29 февраля, поэтому разность равна двум дням. Для 2024 года получаем два, для 2025 — один.

В григорианском календаре год високосный, если делится на 4, кроме лет, делящихся на 100; из этого исключения есть ещё исключение для лет, делящихся на 400. Поэтому 2000 год високосный, а 1900 и 2100 — нет.

Не подставляйте во все годы 365 дней при длинном интервале. Несколько високосных дней постепенно изменят ответ. Лучше вычислять по полным датам, а не умножать количество лет на приблизительную длину года.

Калькуляторы дат нашего сайта работают с григорианскими датами в диапазоне 1000–9999 годов. Исторические переходы между календарями для конкретных стран не моделируются. Для исторической задачи нужно отдельно уточнить, в каком календаре записаны исходные даты.

Високосный год: кратен 4 и (не кратен 100 или кратен 400)

Почему месяц не равен тридцати дням

Месяцы имеют разную длину: 28, 29, 30 или 31 день. Поэтому «через месяц» и «через 30 дней» — разные задачи. Добавление календарных месяцев сохраняет положение в месяце по выбранному правилу, а добавление дней считает отдельные календарные переходы.

В модели с ограничением последним днём месяца 31 января 2025 года плюс один месяц даёт 28 февраля. Если затем вычесть месяц из 28 февраля, получится 28 января, а не 31 января. Преобразование потеряло информацию об исходном дне, поэтому обратная операция не обязана восстановить его.

Интервал «годы, месяцы и дни» тоже отличается от общего количества суток. Его компоненты описывают последовательные календарные шаги. Не складывайте месяцы и дни через условный коэффициент 30, если нужен точный ответ по календарю.

Для возраста требуется дата рождения и дата сравнения, а также правило обработки 29 февраля. Для срока в фиксированном количестве дней используйте прибавление дней. Выбор отдельного калькулятора помогает не смешивать эти модели в одном результате.

Календарные и рабочие дни

Календарные дни включают каждый день недели. Рабочие дни зависят от расписания: выходных, праздников и переносов. Простая пятидневка без праздников — лишь одна модель, а не готовый производственный календарь любой страны.

В нашем рабочем калькуляторе встроен федеральный календарь России для пятидневки 2026 года. Для других лет выберите пятидневку без праздников или собственный календарь с явными датами. Не переносите автоматически календарь 2026 года на следующий: даты переносов могут отличаться.

Собственный календарь полезен для сменного графика и региональных условий. Можно задать нерабочие и специальные рабочие даты. Перед расчётом убедитесь, что эти даты относятся к нужному году и что правила выходных соответствуют вашей задаче.

Наличие рабочих дней в калькуляторе не делает его инструментом юридического определения срока. Для процессуального срока, отпуска, оплаты или договорного обязательства могут действовать специальные правила границ и переносов. Их нужно уточнять отдельно в применимом источнике, а затем задавать модель.

Календарный день и двадцать четыре часа

Дата без времени описывает календарный день, а момент с временем — точку на временной шкале. Между соседними календарными датами обычно один календарный переход, но между одинаковыми местными часами не всегда ровно 24 часа: в некоторых часовых поясах меняется смещение при переводе часов.

Для точного промежутка задайте время и часовой пояс. Не сравнивайте одно событие по московскому времени с другим по времени устройства, не указав это различие. Отображение часов и реальный момент связаны через выбранный часовой пояс.

При сезонном переводе часов некоторые местные времена могут отсутствовать или повторяться. Если инструмент сообщает о несуществующем времени, это не повод убрать проверку. При повторяющихся часах отдельно уточните реальный момент события: одной местной записи может быть недостаточно.

Для задач только с календарными датами наш движок не делит произвольные местные временные метки на 86 400 000. Он использует календарную модель. Для задач с моментами применяется отдельное преобразование с часовым поясом, чтобы пользователь не получал скрытую ошибку из-за перевода часов.

Как проверить разность дат

Сначала убедитесь, что день и месяц введены в правильные поля. Даты вроде 31 апреля и 29 февраля невисокосного года не должны незаметно превращаться в следующий месяц. Движок отклоняет несуществующие даты вместо автоматического исправления.

Проверьте порядок. Обычная разность с 10 марта до 1 марта будет отрицательной: −9 дней. Знак помогает увидеть, что конец поставлен раньше начала. Для рабочих периодов и границ дополнительно смотрите выбранные настройки, а не только модуль ответа.

Наконец, сравните с небольшим ручным примером: соседние даты, одинаковая дата, переход через конец месяца. Сохраните вместе с результатом правило включения границ, календарь и часовой пояс, если он нужен. Без этих настроек чужой ответ невозможно однозначно повторить.

Частые вопросы

Почему получилось на один день больше?

Скорее всего, включены обе границы периода. Обычная разность и количество дат в закрытом интервале — разные величины.

Можно ли считать рабочие дни для любого года?

Да, по пятидневке без праздников или собственному календарю. Встроенные официальные федеральные даты в текущей версии относятся только к 2026 году.

Что выбрать для срока «через месяц»?

Используйте прибавление календарных месяцев и проверьте правило конца месяца. Не заменяйте месяц фиксированными тридцатью днями без такого условия в задаче.

Коротко о главном

Чтобы правильно посчитать дни между датами, укажите границы, порядок дат и тип календаря. Для точного времени добавьте часовой пояс, а для специальных сроков отдельно проверьте применимые правила.

Посчитать дни между датами