Калькулятор Дат
Прибавляйте или вычитайте дни, недели, месяцы и годы; анализируйте диапазоны со счётом будних и выходных дней
Калькулятор Дат
Результат
Калькулятор Диапазона Дат
История вычислений
О датах
Рабочие дни
Рабочие дни исключают субботу и воскресенье. Полезно для графиков проектов, контрактных сроков и SLA-окон, которые останавливаются на выходных. Калькулятор шагает день за днём и считает только Пн–Пт.
Только будни
Будние дни в этом инструменте — с понедельника по пятницу, тот же набор Пн–Пт, что и Рабочие дни, для юрисдикций без данных о государственных праздниках. Если нужен календарь с учётом праздников, храните их отдельно и пропускайте в собственном цикле.
Анализ диапазона дат
Выберите дату начала и конца, чтобы увидеть длительность в днях, целых неделях, календарных месяцах и годах, количестве будних и выходных дней — считается включительно от начала до конца.
Прибавление / вычитание единиц
Прибавляйте или вычитайте дни, недели, месяцы, годы, часы или минуты. Календарная арифметика использует объект Date браузера, поэтому високосные годы и короткие месяцы обрабатываются автоматически.
Калькулятор Дат
Прибавляйте или вычитайте дни, недели, месяцы и годы; анализируйте диапазоны со счётом будних и выходных дней
Возможности
- Прибавляйте или вычитайте дни, недели, месяцы, годы, часы или минуты к любой базовой дате — учитывает календарь (високосные годы и короткие месяцы обрабатываются объектом Date)
- Режим рабочих дней пропускает субботу и воскресенье в обе стороны; положительные значения движутся вперёд, отрицательные — назад
- Режим только будни считает только с понедельника по пятницу — тот же набор Пн–Пт, полезно при отсутствии данных о праздниках
- Панель диапазона дат анализирует любой интервал начало–конец: всего дней, целые недели, календарные месяцы и годы (с переносом дня), плюс счёт будних и выходных дней (оба конца включительно)
- Прокручивающаяся история вычислений с последними 10 операциями: базовая дата, результат и день недели результата — копируйте любой исторический результат одним кликом
- Метка дня недели рисуется через Intl.DateTimeFormat и следует активному языку страницы («Monday» на /en, «Pazartesi» на /tr, «Montag» на /de)
- Даты разбираются на местный полдень во избежание ошибки на день, которая бьёт Date.parse на строках YYYY-MM-DD в зонах с отрицательным UTC
- Результирующие даты форматируются через toLocaleDateString в активной локали — без жёсткого en-US, названия месяцев и числовые форматы следуют языку страницы
Как использовать
- Выберите базовую дату — введите её или нажмите Сегодня, чтобы зафиксировать текущую.
- Выберите операцию: Прибавить, Вычесть, Рабочие дни или Только будни.
- Укажите, сколько выбранной единицы (дни, недели, месяцы, годы, часы, минуты) применить; результат обновится мгновенно.
- Прочтите панель результата: вычисленную дату, день недели и сводку разности; копируйте дату одним кликом.
- Для анализа диапазона задайте начальную и конечную дату в правой панели — увидите всего дней, недели, месяцы, годы, число будних и выходных.
- Последние вычисления остаются в списке истории; используйте кнопку копирования в любой строке, чтобы получить более ранний результат.
Советы и лучшие практики
- Используйте Рабочие дни / Только будни для сроков проектов и контрактных SLA, которые останавливаются на выходных.
- Диапазон дат работает в обе стороны — если начало позже конца, калькулятор меняет их местами внутри.
- Удерживайте спиннер поля значения, чтобы быстро пройти диапазон, следя за обновлением результата.
- Копируйте из истории, чтобы вернуть уже вычисленный результат без повторного ввода.
- Сочетайте этот инструмент с Конвертером часовых поясов, когда нужны и календарный сдвиг, и смена пояса.
Вопросы и ответы
В чём разница между «Рабочие дни» и «Только будни»?
В этом инструменте они идентичны — оба пропускают субботу и воскресенье и шагают с понедельника по пятницу. Реальные календари рабочих дней также пропускают государственные праздники, но данные о праздниках зависят от юрисдикции (федеральные США, банковские праздники Великобритании, национальные дни Турции и т. д.). Инструмент остаётся общим, пропуская только выходные; для полностью локализованного календаря рабочих дней принесите свой список праздников.
Как считаются календарные месяцы и годы в панели диапазона?
Месяцы вычисляются как (годы × 12) + месяцы между началом и концом, затем уменьшаются на единицу, если день месяца конца раньше дня месяца начала — так 15 фев → 14 мар считается 0 месяцами, а 15 фев → 15 мар — 1. Годы уменьшаются, если месяц конца раньше месяца начала или тот же месяц, но день раньше. Это соответствует тому, как люди думают о годовщинах.
Почему общее число дней иногда сдвинуто на один при переходе DST?
Инструмент разбирает строки YYYY-MM-DD на местный полдень, что помещает каждую дату на 12 часов от любого края полуночи/DST — это избегает классической ловушки Date.parse, где «2026-03-08» в зонах с отрицательным UTC становится 2026-03-07 23:00. Общее число дней использует Math.round на дельте миллисекунд, поэтому 23-часовой день перевода вперёд всё равно округляется до 1 дня.
Прибавление 1 месяца всегда попадает на тот же день месяца?
Почти — Date.setMonth JavaScript переносит переполнение вперёд. Прибавить 1 месяц к 31 янв даёт 3 мар в невисокосные годы (фев — 28 дней, поэтому день 31 фев становится днём 3 марта). Это совпадает с большинством банковских и плановых соглашений; если нужна другая правка («зажать до конца месяца», «последний рабочий день месяца») делайте арифметику в своём коде с явным зажимом.
Можно ли вычесть рабочие дни, чтобы найти более ранний срок?
Да. Выберите операцию Вычесть с нужной единицей или используйте Рабочие дни / Только будни с отрицательным значением — движок шагает день за днём назад и считает только Пн–Пт.
Вычисления выполняются локально?
Да. Вся арифметика дат использует встроенный объект Date браузера; ничто не отправляется на сервер, история не загружается, и инструмент работает офлайн после кеширования страницы.
Почему отображаемый формат даты отличается на страницах разных языков?
Результирующие даты и записи истории рисуются через toLocaleDateString на активном языке, поэтому /en показывает MM/DD/YYYY или DD/MM/YYYY (в зависимости от варианта en браузера), /de — DD.MM.YYYY, /fr — DD/MM/YYYY и т. д. Внутреннее вычисление работает в ISO YYYY-MM-DD; только слой отображения следует вашей локали.
Понимает ли инструмент високосные годы?
Да. Арифметика дат делегирует встроенному объекту Date, который знает, что в 2024 был 29 фев, а в 2025 нет. Прибавление 1 года к 29 фев 2024 даёт 1 мар 2025; это соответствует спецификации JavaScript и большинству календарных приложений. Если нужна правка «зажать до 28» в невисокосные годы, выполняйте постобработку в своём коде.