Перейти к основному содержимому
Версия: 1.21.3

SimpleSchedule

Данный класс содержит методы для работы с объектами SimpleSchedule, например, для получения названия календаря, определения соответствия текущего и рабочего времени и возврата разницы между этими двумя значениями.

SimpleSchedule(id, timezoneTitle)


Используйте этот конструктор для создания нового объекта SimpleSchedule.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
idStringНетНет
timezoneTitleStringНет'UTC'

Пример:

SimpleSchedule
const schedule = new SimpleSchedule('157165292607666710', 'UTC');

duration(startDateTime, endDateTime)


Используйте этот метод, чтобы определить разницу во времени по календарю между значениями startDateTime и endDateTime на основе часового пояса календаря или, если не указано, часового пояса сессии.

внимание

Передаваемое значение datetime должно быть в календаре. Чтобы это проверить, используйте метод isInSchedule(datetime).

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
startDateTimeSimpleDateTime objectДаНет
endDateTimeSimpleDateTime objectДаНет

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

ТипОписание
SimpleDuration objectМетод возвращает разницу между двумя значениями времени.

Пример:

duration()
const startDatetime = new SimpleDateTime('2022-01-25 08:00:00');
const endDatetime = new SimpleDateTime('2022-01-29 08:00:00');
const schedule = new SimpleSchedule('161050499417811121'); // sys_schedule.sys_id
const duration = schedule.duration(startDatetime, endDatetime);
ss.info(duration.getValue()); // Информация: 1970-01-02 08:00:00

getName()


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

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

ТипОписание
StringМетод возвращает название календаря.

Пример:

getНазвание()
const schedule = new SimpleSchedule('157165292607666710');
ss.info(schedule.getName()); // Информация: 8x5 не включая государственные праздники РФ

isInSchedule(datetime)


Используйте этот метод, чтобы проверить, включает ли текущий календарь указанный параметр datetime.

примечание

Исключенные сегменты календаря возвращают значение true при проверке этим методом.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
datetimeSimpleDateTime objectДаНет

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

ТипОписание
BooleanМетод возвращает true, если указанное в параметре datetime значение находится в календаре; если значение отсутствует, метод возвращает false.

Пример:

isInSchedule()
const nowDatetime = new SimpleDateTime();
const schedule = new SimpleSchedule('157165292607666710'); // sys_schedule.sys_id
ss.info(schedule.isInSchedule(nowDatetime)); // Информация: false

isValid()


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

примечание

Календарь считается недействительным, когда:

  1. Переданный календарь не существует.
  2. Календарь не содержит элементов календаря рабочего типа, например Исключая или Отгул.

В обоих случаях, указанных выше, метод isValid() возвращает значение false.

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

ТипОписание
BooleanМетод возвращает значение true, если календарь действителен, если нет, метод возвращает значение false.

Пример:

isValid()
const schedule = new SimpleSchedule('157165292607666710'); // sys_schedule.sys_id
ss.info(schedule.isValid()); // Информация: true

isWorkingTime(datetime)


Используйте этот метод, чтобы определить, являются ли указанные время и дата рабочими.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
datetimeSimpleDateTime objectДаНет

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

ТипОписание
BooleanМетод возвращает значение true, если указанные дата и время являются рабочим временем, в противном случае метод возвращает значение false.

Пример:

isWorkingTime()
const schedule = new SimpleSchedule('157165292607666710'); // sys_schedule.sys_id
const firstDatetime = new SimpleDateTime('2020-12-15 05:59:59');
const secondDatetime = new SimpleDateTime('2020-12-15 06:00:00');
ss.info(schedule.isWorkingTime(firstDatetime)); // Информация: false
ss.info(schedule.isWorkingTime(secondDatetime)); // Информация: true

load(sysId, timezoneTitle)


Используйте этот метод для инициализации календаря по указанному ID с учетом часового пояса.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
sysIdStringДаНет
timezoneTitleStringНет'UTC'

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

ТипОписание
VoidМетод не возвращает значение.

Пример:

load()
const schedule = new SimpleSchedule();
schedule.load('157165292607666710'); // sys_schedule.sys_id

setTimeZone(timezoneTitle)


Используйте этот метод, чтобы применить указанный часовой пояс к текущему календарю.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
timezoneTitleStringДаНет

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

ТипОписание
VoidМетод не возвращает значение.

Пример:

setTimeZone()
const schedule = new SimpleSchedule('157165292607666710'); // sys_schedule.sys_id
schedule.setTimeZone('US/Central');

whenNext(datetime, timezoneTitle)


Используйте этот метод, чтобы вернуть оставшееся до начала следующего элемента расписания время в виде объекта SimpleDuration.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
datetimeSimpleDateTime objectДаНет
timezoneTitleStringДа''

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

ТипОписание
SimpleDuration objectМетод возвращает объект SimpleDuration. Метод возвращает null, если календарь недействительный.

Пример:

whenNext()
const startDatetime = new SimpleDateTime();
const schedule = new SimpleSchedule('161050499417811121'); // sys_schedule.sys_id
ss.info('Осталось секунд: ' + schedule.whenNext(startDatetime).getDurationSeconds()); // Информация: Осталось секунд: 6052

whenWillExpire(startDateTime, finalWorkingSeconds)


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

внимание

Параметр finalWorkingSeconds не поддерживает отрицательные значения.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
startDateSimpleDateTime objectДаНет
finalWorkingSecondsIntegerДаНет

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

ТипОписание
SimpleDateTime objectМетод возвращает объект SimpleDateTime.
внимание

Если объект класса SimpleSchedule недействительный (метод isValid() возвращает false для этого объекта), метод whenWillExpire() возвращает null.

Пример:

whenWillExpire()
const startDatetime = new SimpleDateTime('2022-01-23 08:00:00');
const finalWorkingSeconds = 5 * 8 * 3600; // длительность 5 рабочих дней в секундах
const schedule = new SimpleSchedule('161050499417811121'); // sys_schedule.sys_id
ss.info(schedule.whenWillExpire(startDatetime, finalWorkingSeconds).getValue()); // Информация: 2022-01-28 18:30:00