- Главная [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
- Начало работы
- Как решить вашу задачу
- API
Рабочий график
Type parameters
T: WorkScheduleType
Hierarchy
Properties
cycle
Рабочий цикл.
Цикл — упорядоченный список с настройками дней, который применяется циклически к календарным дням, начиная с даты начала работы по данному рабочему графику.
Недельный цикл представляет собой массив из семи элементов с настройками каждого дня недели. Элемент с индексом
0
— это воскресенье, с индексом1
— понедельник и т. д.Пример настройки рабочего графика с недельным циклом: график «Пятидневка».
const workSchedule: WorkSchedule<'weekly'> = { type: 'weekly', cycle: [], }; for (let i = 0; i <= 6; i++ ) { const daySettings: CalendarDaySettings = { startAt: new TTime(9, 0, 0, 0), // рабочий день начинается в 9:00 endAt: new TTime(18, 0, 0, 0), // рабочий день заканчивается в 18:00 breaks: [ // в течение дня есть один перерыв с 12:00 до 13:00 { startAt: new TTime(12, 0, 0, 0), endAt: new TTime(13, 0, 0, 0), description: 'Перерыв на обед', }, ]; isWorkingDay: true, // это рабочий день isHolidayDay: false, // это не праздничный день }; switch (i) { // воскресенье (выходной) case 0: daySettings.isWorkingDay = false; daySettings.isHolidayDay = false; daySettings.description = 'Воскресенье'; break; // понедельник case 1: daySettings.description = 'Понедельник'; break; // вторник case 2: daySettings.description = 'Вторник'; break; // среда case 3: daySettings.description = 'Среда'; break; // четверг case 4: daySettings.description = 'Четверг'; break; // пятница case 5: daySettings.description = 'Пятница'; break; // суббота (выходной) case 6: daySettings.isWorkingDay = false; daySettings.isHolidayDay = false; daySettings.description = 'Суббота'; break; default: throw new Error('incorrect day index'); } workSchedule.cycle.push(daySettings); }
Произвольный цикл может представлять собой массив из любого количества элементов. Элемент с индексом
0
будет содержать настройки дня, соответствующего дате начала работы по данному рабочему графику. Такой цикл может использоваться, например, для настройки посменного рабочего графика типа «Сутки через двое».Пример посменного графика работы: график «Сутки через двое». Рабочая смена начинается в 7:00 утра и заканчивается в 6:59 следующего календарного дня.
const workSchedule: WorkSchedule<'custom'> = { type: 'custom', cycle: [], }; // рабочая смена длится 24 часа (с получасовым перерывом) и затрагивает два календарных дня workSchedule.cycle.push({ startAt: new TTime(7, 0, 0, 0), // рабочий день начинается в 7:00 endAt: new TTime(23, 59, 59, 999), // рабочий день заканчивается в 23:59 breaks: [ // в течение дня есть один перерыв с 15:00 до 15:30 { startAt: new TTime(15, 0, 0, 0), endAt: new TTime(15, 30, 0, 0), }, ], isWorkingDay: true, // это рабочий день isHolidayDay: false, // это не праздничный день }); workSchedule.cycle.push({ startAt: new TTime(0, 0, 0, 0), // рабочий день начинается в 00:00 endAt: new TTime(6, 59, 59, 999), // рабочий день заканчивается в 06:59 isWorkingDay: true, // это рабочий день isHolidayDay: false, // это не праздничный день }); // настройки выходного дня workSchedule.cycle.push({ startAt: new TTime(0, 0, 0, 0), // выходной день начинается в 00:00 endAt: new TTime(23, 59, 59, 999), // выходной день заканчивается в 23:59 isWorkingDay: false, // это не рабочий день isHolidayDay: false, // это не праздничный день });
type
Тип рабочего графика:
weekly
— недельный,custom
— произвольный.Properties