Перейти к содержанию

смещдат

Функция смещдат смещает исходную дату на указанное количество дней вперёд или назад.

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

Синтаксис

смещдат(исходнаяДата, количествоДней)

Параметры:

  • исходнаяДата — дата, относительно которой выполняется смещение. Обязательный параметр;
  • количествоДней — количество дней, на которое необходимо сместить дату. Обязательный числовой параметр.

Положительное значение количествоДней смещает дату вперёд, отрицательное — назад. Значение 0 возвращает исходную дату без смещения.

В качестве параметров можно использовать:

  • значения полей;
  • результаты других функций;
  • выражения.

Возвращаемое значение

Функция возвращает дату, смещённую на указанное количество дней.

Если исходная дата содержит время, оно сохраняется.

Особенности

Функция автоматически учитывает переход между месяцами и годами.

Например:

смещдат("31.12.2025", 1)

Результат:

01.01.2026 00:00:00

Если исходная дата содержит время, оно сохраняется после смещения.

Например:

смещдат("31.03.2025 14:30:25", 1)

Результат:

01.04.2025 14:30:25

Функция принимает дробные числовые значения.

Например:

смещдат("31.03.2025", 1.5)

Результат:

02.04.2025 00:00:00

Примеры

Смещение даты вперёд

смещдат("31.03.2025", 20)

Результат:

20.04.2025 00:00:00

Смещение даты назад

смещдат("31.03.2025", -20)

Результат:

11.03.2025 00:00:00

Использование значения поля и выражения

Если:

  • исходнаяДата = 02.09.2026;
  • количествоДней = 3;

то выражение:

смещдат(исходнаяДата, количествоДней + 1)

вернёт:

06.09.2026 00:00:00

Ошибки

Функция возвращает ошибку, если один из обязательных параметров не содержит значения.

Ошибка возникает, если не заполнено:

  • исходнаяДата;
  • количествоДней.

Связь с другими функциями

Функцию смещдат можно использовать совместно с другими функциями для работы с датами.

Исходную дату можно сформировать с помощью функции дата, а затем сместить на необходимое количество дней:

смещдат(дата(31, 3, 2025), 20)

Результат:

20.04.2025 00:00:00

Результат функции можно передать в функцию форматирования:

форматДаты(
    смещдат(дата(31, 3, 2025), 20),
    ФорматДаты.ДатаКратко
)

Результат:

20.04.2025

Для собственного формата отображения можно использовать функцию форматДатыПоМаске:

форматДатыПоМаске(
    смещдат(дата(31, 3, 2025), 20),
    "dd MMMM yyyy"
)

При русской локали результат:

20 апреля 2025