Что такое смещение даты?

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

Арифметика дат сложнее, чем кажется. Месяцы имеют разную длину, високосные годы добавляют дополнительный день, а расчёты рабочих дней должны пропускать выходные. Ручное жонглирование этими граничными случаями подвержено ошибкам, особенно когда объединены несколько единиц — например, «добавить 1 год, 3 месяца и 15 рабочих дней». Специализированный калькулятор обрабатывает все календарные особенности, чтобы вы получили точный результат каждый раз.

Описание инструмента

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

Примеры

Начальная дата Операция Смещение Результат
2026-01-01 Добавить 6 месяцев, 15 дней Четверг, 16 июля 2026 г.

Возможности

  • Комбинированные многоединичные смещения — смешивайте годы, кварталы, месяцы, недели, дни, рабочие дни, часы, минуты, секунды и миллисекунды в одном расчёте
  • Учёт рабочих дней — автоматически пропускает субботы и воскресенья при расчёте смещений рабочих дней
  • Богатые детали результата — отображает день недели, день года, номер недели ISO, статус високосного года и временную метку Unix рядом с датой результата
  • Двусторонняя операция — переключайтесь между добавлением и вычитанием смещений одним щелчком
  • Точность до миллисекунды — поддерживает ввод и вывод даты и времени с точностью до миллисекунды для высокоточных сценариев

Варианты использования

  • Управление проектами — рассчитайте сроки, добавив рабочие дни или календарные недели к дате начала проекта, автоматически учитывая выходные
  • Юридическое и финансовое планирование — определите даты истечения контрактов, сроки платежей или периоды уведомления, смещая от опорной даты с точными единицами
  • Планирование событий — найдите точные даты повторяющихся вех, такие как «6 месяцев и 10 дней после запуска», без ручного подсчёта календаря

Объяснение параметров

Параметр Описание
Начальная дата Опорная дата и время, от которых применяется смещение
Операция Выберите Добавить (+), чтобы двигаться вперёд во времени, или Вычесть (−), чтобы двигаться назад
Годы / Кварталы / Месяцы Смещения на основе календаря; кварталы преобразуются в 3-месячные приращения
Недели / Дни Прямолинейные смещения календарных дней (недели = 7 дней каждая)
Рабочие дни Смещение только в будни, пропускающее субботы и воскресенья
Часы / Минуты / Секунды / Миллисекунды Смещения времени в пределах дня для точных расчётов времени

Как это работает

Калькулятор применяет смещения в определённом порядке, чтобы обеспечить предсказуемые результаты:

  1. Годы добавляются или вычитаются в первую очередь путём корректировки компонента года даты.
  2. Кварталы и месяцы объединяются и применяются далее, смещая компонент месяца.
  3. Недели и дни объединяются в общее количество дней и применяются к компоненту дня.
  4. Рабочие дни затем перебираются по одному дню за раз, пропуская любую субботу или воскресенье.
  5. Часы, минуты, секунды и миллисекунды применяются в последнюю очередь для точности в пределах дня.

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

Часто задаваемые вопросы

Почему добавление 1 месяца к 31 января даёт другой результат, чем ожидается? Месяцы имеют разную длину. Объект Date в JavaScript обрабатывает переполнение путём перехода вперёд — так что 31 января + 1 месяц становится 3 марта в невисокосные годы (так как февраль имеет только 28 дней). Это стандартное поведение арифметики дат.

Учитывает ли расчёт рабочих дней государственные праздники? Нет. Рабочие дни пропускают только субботы и воскресенья. Государственные праздники различаются по странам и регионам, поэтому они не включены в расчёт.

Могу ли я вводить отрицательные числа в поля смещения? Поля смещения принимают только неотрицательные значения. Используйте раскрывающееся меню Операция, чтобы переключаться между добавлением и вычитанием.