Калькулятор разницы дат — бесплатно
Вычисляйте точную разницу между двумя датами — годы, месяцы, дни, недели, рабочие дни (без выходных), часы и минуты.
Быстрые пресеты
Частые применения
- Рассчитайте дни до срока родовОбратный отсчет до предполагаемой даты рождения ребенка. Узнайте точно, сколько недель, дней и часов до большого дня.
- Дни до вашего отпускаОбратный отсчет до поездки с рабочими днями, общим количеством дней и оставшимися неделями в целях планирования.
- Рабочие дни до сроков проектаРассчитайте точное количество рабочих дней (исключая выходные) между сегодняшним днем и сроком проекта.
- Рассчитайте дни годовщины вместеУзнайте точно, сколько дней, месяцев и лет вы были вместе с кем-то особенным.
- Калькулятор разницы в возрасте между двумя людьмиРассчитайте точную разницу в возрасте между двумя днями рождения, разница в годах, месяцах и днях.
Как это работает
Весь расчёт выполняется полностью в браузере с использованием написанной вручную арифметики UTC — без внешней библиотеки, без запроса к серверу. Инструмент разбирает строки ГГГГ-ММ-ДД на компоненты календаря, вычисляет разницы, используя временные метки в миллисекундах Date.UTC(), чтобы избежать дрейфа перехода на летнее время, и итерирует день за днём для подсчёта рабочих дней понедельник–пятница.
- 1Безопасный разбор датыКаждая строка даты проверяется регулярным выражением, затем реконструируется через Date.UTC() — а не new Date(строка) — так что пользователи западнее UTC никогда не видят сдвиг дня недели, вызванный интерпретацией браузером ввода даты только в местном часовом поясе.
- 2Вычитание в миллисекундах UTCДве календарные даты преобразуются в временные метки полночи UTC с Date.UTC(y, m, d). Целочисленное деление на 86 400 000 мс даёт точное количество целых дней, невосприимчивое к переходам на летнее время, которые иначе могли бы заставить день казаться длящимся 23 или 25 часов.
- 3Разбивка календаря и подсчёт рабочих днейНаписанная вручную декомпозиция год/месяц/день обрабатывает неравномерности длины месяца (заимствуя дни из предыдущего месяца при необходимости). Отдельный цикл проходит по каждому дню UTC между двумя датами и увеличивает счётчик только для понедельника–пятницы (getUTCDay() !== 0 или 6), производя точный итог рабочих дней независимо от локали.
- 4Результаты отображены во всех единицахИтоги форматируются с помощью toLocaleString(), используя локаль страницы для группировки цифр с учётом локали, затем показываются одновременно как годы/месяцы/дни, всего дней, рабочих дней, недель, часов и минут. Текущая пара дат записывается в URL через history.replaceState, так что любой результат можно добавить в закладки или поделиться как прямую ссылку.
Похожие инструменты
Калькулятор рабочих дней
Считайте рабочие дни между датами или прибавляйте/отнимайте рабочие дни от даты. Настраиваемые выходные и список праздников.
Тест сенсорного экрана
Рисуйте пальцами, чтобы найти мертвые зоны на сенсорном экране, подсчитайте, сколько касаний он регистрирует одновременно, и посмотрите давление и размер области контакта.
Калькулятор времени
Складывайте или вычитайте длительности ЧЧ:ММ:СС или находите время между двумя временными метками. Удобно для учёта рабочего времени, разбивки по этапам гонки и отслеживания проектов.