Перейти к основному содержанию
CalcMax

Калькулятор количества дней

Результат

31 дни

Всего дней

Включая обе границы
31 дни
Без конечной даты
30 дни

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

Формула

дней между = число полуночей от более ранней даты до более поздней; дней включая = это же число + 1, потому что каждый из двух концов считается за целый день

startDate
Первая из двух дат в виде ГГГГ-ММ-ДД. Какая из них раньше, значения не имеет — порядок можно менять свободно
endDate
Вторая дата. Она не обязана быть позже первой, и ответ в любом случае одинаков
includeEndDate
Переключатель, который выбирает конвенцию: выключен — считаются дни между датами, включён — оба конца тоже. Он меняет только главную строку, две остальные показываются всегда
totalDays
Главное число, следующее за переключателем. Оно совпадает с одной из двух строк ниже и никогда не бывает третьим ответом
inclusiveDays
Число дней, когда и первый, и последний день засчитаны как день, — так считают табель посещаемости и курс приёма лекарства
exclusiveDays
Число дней строго между двумя датами — так считают ночи в гостинице и сутки аренды

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

Разобранные примеры

  1. Три ночи с пятницы по понедельник

    1. Путь с пятницы 2 января по понедельник 5 января пересекает три полуночи: те, что начинают субботу, воскресенье и понедельник
    2. Между датами это 3 дня — столько же ночей, и именно это число ставят в договор гостиница или аренда
    3. С обоими концами как днями получается 3 + 1 = 4 дня — так обычно и понимают табель или заявление на отпуск
    4. Переключатель здесь выключен, поэтому в главной строке стоит 3, а строка с обоими концами по-прежнему показывает 4

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

  2. Одна и та же дата, введённая дважды

    1. Между двумя одинаковыми датами не проходит ни одной полуночи, поэтому дней между ними 0
    2. С засчитанными концами получается 0 + 1 = 1: сама дата — это один день календаря
    3. Переключатель включён, поэтому главная строка показывает 1
    4. Выключите переключатель — и главная строка станет 0, а обе строки ниже не изменятся

    Это самый широкий разрыв между двумя конвенциями в относительном выражении: 0 и 1. Заодно это случай, который простая разница дат выразить не может вовсе, потому что у неё нет способа сказать, считается ли сама дата.

  3. Через високосный день

    1. 2024 год високосный, поэтому 29 февраля существует и лежит между двумя датами
    2. Дней между датами: 29 февраля стоит посередине, его нужно пересечь, значит на пути две полуночи и счёт равен 2
    3. С добавленными концами получается 3 дня, а переключатель выключен, поэтому в главной строке 2
    4. Та же пара дат в невисокосном году, например в 2026-м, даёт 1 день, потому что пересекать нечего

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

Ограничения

Результат — это счёт целых календарных дней, поэтому неполный день в нём не появляется: с 9 утра одного дня до 9 утра следующего — это один день, и с 23 часов до часа ночи тоже один день, потому что читаются только даты, а время суток в поля вообще не вводится. Все дни подряд считаются рабочими, поэтому выходные и праздники попадают в счёт: количество рабочих дней — это другой вопрос и другой ответ. Разбивки на годы, месяцы и недели здесь нет, есть только два счёта в днях. Дата должна существовать: 30 февраля будет отклонено, а не перенесено на 1 марта. Поддерживаемый диапазон — с 1 января 1 года по 31 декабря 9999 года, и обе даты можно вводить в любом порядке, результат от этого не меняется.

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

Какое из двух чисел мне нужно?
То, которое соответствует предмету счёта. Берите дни между датами, когда каждый день — это ночь, сутки аренды или полные 24 часа с первого дня: поездка с пятницы по понедельник — это три ночи. Берите дни включая последний день, когда первый день сам является днём номер один, как в курсе лекарства, табеле или заявлении на отпуск. Числа отличаются ровно на единицу, поэтому неверно названное число видно сразу, и страница показывает оба, чтобы выбор можно было проверить, а не угадывать.
Сколько дней в январе?
Тридцать один, если считать с 1-го по 31-е с обоими концами, и тридцать, если считать дни между ними. Введите 1 января и 31 января: с включённым переключателем главная строка покажет 31, с выключенным — 30, а строка с обоими концами всё равно покажет 31. Длина месяца здесь не отдельный случай: любая пара от первого числа до последнего работает так же.
Считать первый день, последний или ни один из них?
Именно это решает переключатель, и обе конвенции одинаково употребительны. Дни между датами не засчитывают ни один из концов как отдельный день — так считает ночи гостиница; дни включая последний день засчитывают оба — так курс с 1-го по 7-е оказывается семидневным. Поскольку считаются оба прочтения, включение и выключение переключателя никогда не меняет две строки ниже: меняется только то, какую из них повторяет главная строка.
Что будет, если поменять даты местами?
Ничего. Промежуток — это расстояние, поэтому счёт одинаков независимо от того, какая дата введена первой, и отрицательного ответа тут не бывает. Если ввести 5 января как начало, а 2 января как конец, получатся ровно те же числа, что и в обратном порядке. Порядок важен только в формулировке ответа: с какого числа началась поездка — это другой вопрос, нежели сколько ночей она длилась.
Это то же самое, что калькулятор разницы дат?
Нет, и разница в том, что получается на выходе. Калькулятор разницы дат раскладывает промежуток на годы, месяцы и дни — то есть отвечает, насколько даты далеки друг от друга в календарных единицах. Здесь же считается, сколько дней покрывает промежуток, по одной из двух конвенций, и разбивка намеренно не приводится, чтобы одно и то же число не публиковалось на двух страницах. Если нужен счёт, пропускающий выходные и праздники, это калькулятор рабочих дней, и число там будет меньше.

Источники

Похожие калькуляторы