Перейти к основному содержимому

calendar

Description

Интерфейс рабочего календаря

calendar: Calendar

Details

Для подробной информации о рабочих календарях смотрите статью Расчёт рабочего времени.

Объект calendar включает следующие методы и свойства:

Methods

  • setWorkTime (config): boolean - устанавливает рабочее время для диаграммы Ганта
    • config - (object) - объект конфигурации времени: configuration object временного диапазона:
      • day? - (string | number) - необязательный, номер дня недели [0 (воскресенье) - 6 (суббота)]. Примечание: можно установить только 1 день за раз
      • date? - (Date) - необязательная, конкретная дата, которая будет установлена как рабочий день или выходной
      • hours? - (string[] | number[] | boolean) - необязательный, массив рабочих часов в виде пар 'from'-'to'. Значение 'false' устанавливает выходной день, 'true' (значение по умолчанию) применяет часы по умолчанию (["8:00-17:00"])
      • customWeeks? - (object) - необязательный, объект с различными правилами рабочего времени для разных периодов времени. Объект может содержать набор пар key:value, где ключ — имя временного диапазона, а значение — объект со списком атрибутов.
        • [timespan: string] - (object) - временной диапазон с настройками рабочего времени. Имя этого объекта используется как имя временного диапазона
          • from - (Date) - дата, когда запланировано начало временного диапазона
          • to - (Date) - дата, когда запланировано завершение временного диапазона
          • hours? - (string[] | number[]) - необязательный, массив рабочих часов в виде пар 'from'-'to'. Значение 'false' устанавливает выходной день, 'true' (значение по умолчанию) применяет часы по умолчанию (["8:00-17:00"])
          • days? - (WorkDaysTuple | boolean) - необязательный, массив из 7 дней недели (от 0 — воскресенье, до 6 — суббота), где 1/true обозначает рабочий день, а 0/false — нерабочий день.
calendar.setWorkTime({ hours:["9:00-18:00"] });
calendar.setWorkTime({ hours:["9:00-18:00"] });
calendar.setWorkTime({ day: 5, hours: ["9:00-18:00"] });
calendar.setWorkTime({ day: 5, hours: false });
calendar.setWorkTime({ date: new Date(2025, 5, 6), hours: ["9:00-18:00"] });
calendar.setWorkTime({ date: new Date(2025, 5, 6), hours: false });
calendar.setWorkTime({ hours: false });
calendar.setWorkTime({
customWeeks: {
winter: {
from: new Date(2025, 11, 1),
to: new Date(2026, 2, 1),
hours: ["8:00-13:00", "14:00-16:00"],
days: [1, 1, 1, 1, 1, 0, 0]
},
summer: {
from: new Date(2026, 5, 1),
to: new Date(2026, 7, 1),
hours: ["10:00-13:00", "14:00-16:00"],
days: [1, 1, 0, 1, 1, 0, 0]
}
}
});
calendar.setWorkTime({
customWeeks: {
winter: {
from: new Date(2025, 11, 1),
to: new Date(2026, 2, 1),
hours: ["8:00-13:00", "14:00-16:00"],
days: [1, ["8:00-13:00"], 1, 1, ["14:00-16:00"], 0, 0]
},
summer: {
from: new Date(2026, 5, 1),
to: new Date(2026, 7, 1),
hours: ["10:00-13:00", "14:00-16:00"],
days: false
}
}
});
  • unsetWorkTime (config): void - сбрасывает рабочее время в диаграмме Ганта
    • config - (object) - объект конфигурации времени: configuration object временного диапазона:
      • day? - (string | number) - необязательный, номер дня недели [0 (воскресенье) - 6 (суббота)]. Примечание: можно установить только 1 день за раз
      • date? - (Date) - необязательная, конкретная дата, которая будет установлена как рабочий день или выходной
      • hours? - (string[] | number[] | boolean) - необязательный, массив рабочих часов в виде пар 'from'-'to'. Значение 'false' снимает рабочие часы, 'true' (значение по умолчанию) применяет часы по умолчанию (["8:00-17:00"])
calendar.unsetWorkTime({ hours: ["9:00-18:00"] });
calendar.unsetWorkTime({ day: "5", hours: ["9:00-18:00"] });
calendar.unsetWorkTime({ day: 5, hours: false });
calendar.unsetWorkTime({ date: new Date(2025, 5, 6), hours: true });
  • isWorkTime (config, time_unit): boolean - проверяет, является ли указанная дата рабочим временем
    • config - (Date | object) - либо дата для проверки, либо configuration object временного диапазона:
      • date - (Date) - дата для проверки
      • unit? - (string) - необязательная единица времени: "minute", "hour", "day", "week", "month", "year"
    • time_unit? - (string) - необязательная единица времени: "minute", "hour", "day", "week", "month", "year". Не требуется вовсе, когда первый параметр задан как объект
const calendar = gantt.getTaskCalendar(task);
if (calendar.isWorkTime({date: date})){
alert("worktime of task" + task.text);
}

calendar.isWorkTime(new Date(2025, 5, 6));
calendar.isWorkTime(new Date(2025, 5, 6), "hour");
calendar.isWorkTime({ date: new Date(2025, 5, 6), unit: "hour" });
  • getClosestWorkTime (config): Date - возвращает ближайшее рабочее время
    • config - (Date | object) - configuration object временного диапазона:
      • date - (Date) - дата, для которой нужно найти ближайшее рабочее время
      • dir? - (string) - необязательное, направление ближайшего времени: "future" или "past"
      • unit? - (string) - необязательная единица времени для поиска ближайшего рабочего времени
calendar.getClosestWorkTime(new Date(2025, 5, 6));
calendar.getClosestWorkTime({
date: new Date(2025, 5, 6),
unit: "hour",
dir: "past"
});
  • calculateEndDate (config, duration, unit): Date - вычисляет конечную дату задачи
    • config - (Date | object) - либо дата начала задачи, либо configuration object временного диапазона:
      • start_date - (Date) - дата, когда задача запланирована к началу
      • duration - (number) - продолжительность задачи
      • unit? - (string) - необязательная единица времени продолжительности: "minute", "hour", "day", "week", "month", "year"
    • duration? - (number) - необязательная продолжительность задачи. Не нужна, если первый параметр задан как объект
    • unit? - (string) - необязательная единица времени продолжительности. Не нужна, если первый параметр задан как объект
calendar.calculateEndDate(new Date(2025, 5, 6), 2, "hour");
calendar.calculateEndDate({
start_date: new Date(2025, 5, 6),
duration: 2,
unit: "hour"
});
  • calculateDuration (config, end): number - вычисляет продолжительность задачи
    • config - (Date | object) - либо дата начала задачи, либо configuration object временного диапазона:
      • start_date - (Date) - дата начала задачи
      • end_date - (Date) - дата завершения задачи
    • end? - (Date) - дата завершения задачи. Не нужна, если первый параметр задан как объект
calendar.calculateDuration(new Date(2025, 5, 6), new Date(2025, 5, 17));
calendar.calculateDuration({
start_date: new Date(2025, 5, 6),
end_date: new Date(2025, 5, 17)
});

Properties

  • id - (string | number) - идентификатор календаря задачи
Need help?
Got a question about the documentation? Reach out to our technical support team for help and guidance. For custom component solutions, visit the Services page.