Расчет даты

Рабочий процесс: узел вычисления датCommunity Edition+

Введение

Узел «Расчет даты» предоставляет девять вычислительных функций, включая добавление периода времени, вычитание периода времени, форматированный вывод временной строки и преобразование единиц длительности. У каждой функции есть конкретные типы входных и выходных значений, а также возможность принимать результаты других узлов в виде параметров-переменных. Узел использует вычислительный конвейер, последовательно связывая результаты настроенных функций для получения итогового результата.

Создание узла

В интерфейсе настройки рабочего процесса нажмите кнопку плюса ("+") в потоке, чтобы добавить узел «Расчет даты»:

Создание узла расчета даты

Настройка узла

Настройка узла расчета даты

Входное значение

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

Тип входного значения

Это тип входного значения. Возможны два варианта.

  • Тип «Дата»: означает, что входное значение в итоге может быть преобразовано к типу «дата и время», например числовая временная метка или строка с временем.
  • Тип «Число»: так как тип входного значения влияет на выбор следующих шагов вычисления времени, важно правильно выбрать тип входного значения.

Шаги вычисления

Каждый шаг вычисления состоит из функции вычисления и конфигурации ее параметров. Используется конвейерная схема: результат вычисления предыдущей функции становится входным значением для следующей функции. Так можно выполнить цепочку вычислений и преобразований времени.

После каждого шага вычисления тип выхода фиксирован и влияет на функции, доступные на следующем шаге. Вычисление продолжается только при совпадении типов. Иначе результат текущего шага становится финальным выходом узла.

Функции вычисления

Добавить период времени

  • Принимаемый тип входного значения: Дата
  • Параметры
    • Добавляемая величина: число или встроенная переменная узла.
    • Единица времени.
  • Тип выходного значения: Дата
  • Пример: когда входное значение 2024-7-15 00:00:00, величина 1, единица «день», результат вычисления — 2024-7-16 00:00:00.

Вычесть период времени

  • Принимаемый тип входного значения: Дата
  • Параметры
    • Вычитаемая величина: число или встроенная переменная узла.
    • Единица времени.
  • Тип выходного значения: Дата
  • Пример: когда входное значение 2024-7-15 00:00:00, величина 1, единица «день», результат вычисления — 2024-7-14 00:00:00.

Вычислить разницу с другим временем

  • Принимаемый тип входного значения: Дата
  • Параметры
    • Дата для вычисления разницы: может быть константой даты или переменной из контекста рабочего процесса.
    • Единица времени.
    • Нужно ли брать абсолютное значение.
    • Операция округления: сохранить дробную часть, округлить, округлить вверх, округлить вниз.
  • Тип выходного значения: Число
  • Пример: когда входное значение 2024-7-15 00:00:00, объект сравнения 2024-7-16 06:00:00, единица «день», абсолютное значение не берется и дробная часть сохраняется, результат вычисления — -1.25.
Совет

Когда одновременно настроены абсолютное значение и округление, сначала берется абсолютное значение, затем применяется округление.

Получить значение времени в указанной единице

  • Принимаемый тип входного значения: Дата
  • Параметры
    • Единица времени.
  • Тип выходного значения: Число
  • Пример: когда входное значение 2024-7-15 00:00:00, а единица «день», результат вычисления — 15.

Установить дату в начало указанной единицы

  • Принимаемый тип входного значения: Дата
  • Параметры
    • Единица времени.
  • Тип выходного значения: Дата
  • Пример: когда входное значение 2024-7-15 14:26:30, а единица «день», результат вычисления — 2024-7-15 00:00:00.

Установить дату в конец указанной единицы

  • Принимаемый тип входного значения: Дата
  • Параметры
    • Единица времени.
  • Тип выходного значения: Дата
  • Пример: когда входное значение 2024-7-15 14:26:30, а единица «день», результат вычисления — 2024-7-15 23:59:59.

Проверить високосный год

  • Принимаемый тип входного значения: Дата
  • Параметры
    • Без параметров
  • Тип выходного значения: Логическое значение
  • Пример: когда входное значение 2024-7-15 14:26:30, результат вычисления — истина.

Форматировать как строку

  • Принимаемый тип входного значения: Дата
  • Параметры
  • Тип выходного значения: Строка
  • Пример: когда входное значение 2024-7-15 14:26:30, а формат время: YYYY/MM/DD HH:mm:ss, результат вычисления — время: 2024/07/15 14:26:30.

Преобразовать единицу

  • Принимаемый тип входного значения: Число
  • Параметры
    • Единица времени до преобразования.
    • Единица времени после преобразования.
    • Операция округления: сохранить дробную часть, округлить, округлить вверх, округлить вниз.
  • Тип выходного значения: Число
  • Пример: когда входное значение 2, единица до преобразования «неделя», после преобразования «день», без сохранения дробной части, результат вычисления — 14.

Пример

Пример узла расчета даты

Предположим, есть промо-акция, и при создании каждого товара нужно записывать в его поле время окончания акции. Это время — 23:59:59 последнего дня недели, следующей за временем создания товара. Для этого можно создать две функции времени и выполнить их в вычислительном конвейере:

  • Вычислить время следующей недели
  • Установить результат в 23:59:59 последнего дня этой недели

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