Данный класс содержит методы для работы с объектами SimpleSchedule, например, для получения названия календаря, определения соответствия текущего и рабочего времени и возврата разницы между этими двумя значениями.
SimpleSchedule(id, timezoneTitle)
Используйте этот конструктор для создания нового объекта SimpleSchedule.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
id | String | Нет | Нет |
timezoneTitle | String | Нет | 'UTC' |
Пример:
const schedule = new SimpleSchedule('157165292607666710', 'UTC');
duration(startDateTime, endDateTime)
Используйте этот метод, чтобы определить разницу во времени по календарю между значениями startDateTime и endDateTime на основе часового пояса календаря или, если не указано, часового пояса сессии.
Передаваемое значение datetime должно быть в календаре. Чтобы это проверить, используйте метод isInSchedule(datetime).
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
startDateTime | SimpleDateTime object | Да | Нет |
endDateTime | SimpleDateTime object | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
SimpleDuration object | Метод возвращает разницу между двумя значениями времени. |
Пример:
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 | Метод возвращает название календаря. |
Пример:
const schedule = new SimpleSchedule('157165292607666710'); ss.info(schedule.getName()); // Информация: 8x5 не включая государственные праздники РФ
isInSchedule(datetime)
Используйте этот метод, чтобы проверить, включает ли текущий календарь указанный параметр datetime.
Исключенные сегменты календаря возвращают значение true при проверке этим методом.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
datetime | SimpleDateTime object | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает true, если указанное в параметре datetime значение находится в календаре; если значение отсутствует, метод возвращает false. |
Пример:
const nowDatetime = new SimpleDateTime(); const schedule = new SimpleSchedule('157165292607666710'); // sys_schedule.sys_id ss.info(schedule.isInSchedule(nowDatetime)); // Информация: false
isValid()
Используйте этот метод, чтобы проверить действительность указанного календаря.
Календарь считается недействительным, когда:
- Переданный календарь не существует.
- Календарь не содержит элементов календаря рабочего типа, например Исключая или Отгул.
В обоих случаях, указанных выше, метод isValid() возвращает значение false.
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает значение true, если календарь действителен, если нет, метод возвращает значение false. |
Пример:
const schedule = new SimpleSchedule('157165292607666710'); // sys_schedule.sys_id ss.info(schedule.isValid()); // Информация: true
isWorkingTime(datetime)
Используйте этот метод, чтобы определить, является ли указанные время и дата рабочими.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
datetime | SimpleDateTime object | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Boolean | Метод возвращает значение true, если указанные дата и время являются рабочим временем, в противном случае метод возвращает значение false. |
Пример:
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 с учётом часового пояса.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
sysId | String | Да | Нет |
timezoneTitle | String | Нет | 'UTC' |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const schedule = new SimpleSchedule(); schedule.load('157165292607666710'); // sys_schedule.sys_id
setTimeZone(timezoneTitle)
Используйте этот метод, чтобы применить указанный часовой пояс к текущему календарю.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
timezoneTitle | String | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
Пример:
const schedule = new SimpleSchedule('157165292607666710'); // sys_schedule.sys_id schedule.setTimeZone('US/Central');
whenNext(datetime, timezoneTitle)
Используйте этот метод, чтобы вернуть оставшееся до начала следующего элемента расписания время в виде объекта SimpleDuration.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
datetime | SimpleDateTime object | Да | Нет |
timezoneTitle | String | Нет | '' |
Возвращаемое значение:
Тип | Описание |
---|---|
SimpleDurationobject | Метод возвращает объект SimpleDuration. Метод возвращает null, если календарь недействительный. |
Пример:
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 не поддерживает отрицательные значения.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
startDate | SimpleDateTime object | Да | Нет |
finalWorkingSeconds | Integer | Да | Нет |
Возвращаемое значение:
Тип | Описание |
---|---|
SimpleDateTime object | Метод возвращает объект SimpleDateTime. |
Если объект класса SimpleSchedule недействительный (метод isValid() возвращает false для этого объекта), метод whenWillExpire() возвращает null.
Пример:
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