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

Пространство имен: EleWise.ELMA.Scheduling
Сборка: EleWise.ELMA.SDK (в EleWise.ELMA.SDK.dll) Версия: 1.0.0.0 (3.8.0.22046)

Синтаксис

C#
public interface IProductionCalendarService

Примеры

CopyC#
 1//С помощью данного сервиса можно управлять рабочим календарём: вычислять рабочее время,
 2//проверить, является ли день рабочим, получать рабочее время, получать начало и конец рабочего дня,
 3//изменять рабочие рамки.
 4
 5//запишем сервис в переменную, чтобы с ним легче было работать
 6var service = Locator.GetServiceNotNull<IProductionCalendarService>();
 7
 8//Чтобы проверить, является ли дата рабочим днем, используйте функцию IsWorkDay(dateTime)
 9var isWorkDay = service.IsWorkDay(DateTime.Now.AddDays(3));
10
11//Чтобы вычислить дату и время по истечении срока в соответствии с календарём, используйте функцию EvalTargetTime(startTime, interval)
12//или EvalTargetTime(startTime, intervalHours), где:
13//DateTime startTime - Дата начада;
14//TimeSpan interval - интервал времени;
15//double intervalHours - интревал в часах
16var dateTime = service.EvalTargetTime(DateTime.Now.AddDays(1), 5);
17
18//Чтобы вычислить интервал рабочего времени между датами используйте следующие функции:
19//1.EvalWorkTimeSpanDifference(startDate, endDate) (значение в днях, часах, минутах и секундах)
20var timeSpan = service.EvalWorkTimeSpanDifference(startDate, endDate);
21
22//2.EvalWorkTimeDifference(startTime, endTime) (значение в часах, минутах и секундах)
23var timeSpan = service.EvalWorkTimeDifference(startTime, endTime);
24
25//3.EvalWorkTimeHoursDifference(startTime, endTime) (значение в часах)
26var hours = service.EvalWorkTimeHoursDifference(startTime, endTime);
27
28//Чтобы определить рамки рабочего лня, используйте следующие функции:
29//1.GetWorkTimeStart(day) - получить начало рабочего времени
30var workTimeStart = service.GetWorkTimeStart(DateTime.Now);
31
32//2.GetWorkTimeEnd(day) - получить конец рабочего дня
33var workTimeEnd = service.GetWorkTimeEnd(DateTime.Now);
34
35//Чтобы получить продолжительность рабочего дня используйте следующие функции:
36//1.GetWorkTimeInDay() - для текущего дня
37var currentWorkTime = service.GetWorkTimeInDay();
38
39//2.GetWorkTimeInDay(day) - для определённого дня
40var workTime = service.GetWorkTimeInDay(DateTime.Now.AddDays(3));
41
42//3.MinutesInDay() - количество минут в текущем рабочем дне
43var currentMinutes = service.MinutesInDay();
44
45//4.MinutesInDay(day) - количество минут в определённом дне
46var minutes = service.MinutesInDay(DateTime.Now);
47
48//Чтобы добавить к дате определенное количество дней с учетом календаря (без учеты времени работы)
49//используйте функцию AddDays(startTime, addDays)
50var resultDate = service.AddDays(DateTime.Now, 5);
51
52//Чтобы установить выходной день используйте функцию SetHoliday(day)
53service.SetHoliday(DateTime.Now.AddDays(3));
54
55//Чтобы установить (изменить) рабочее время используйте следующие функции:
56//1.SetWorkDayTime(workStart) - установить только начало рабочего дня
57//в данном случае устанавливается рабоче время 9 утра
58service.SetWorkDayTime(new TimeSpan(9, 0, 0));
59
60//2.SetWorkDayTime(workStart, workEnd) - установить начало и конец рабочего дня
61service.SetWorkDayTime(new TimeSpan(9, 0, 0), new TimeSpan(18, 0, 0));
62
63//3.SetWorkDayTime(workStart, workEnd, dinnerStart, dinnerEnd) - установить начало и конец рабочего дня, начало и конец обеда
64service.SetWorkDayTime(new TimeSpan(9, 0, 0), new TimeSpan(18, 0, 0), new TimeSpan(12, 30, 0), new TimeSpan(13, 30, 0));

См. также