IProductionCalendarService - интерфейс |
Пространство имён: EleWise.ELMA.Scheduling
public interface IProductionCalendarService
Тип IProductionCalendarService предоставляет следующие члены.
Имя | Описание | |
---|---|---|
AddDays |
Добавить количество дней и получить время начала рабочего дня (срока) с учетом календаря (с учетом рабочих дней, но без учета рабочего времени в рабочем дне)
| |
EvalTargetTime(DateTime, Double) |
Рассчитать срок от интервала в часах
| |
EvalTargetTime(DateTime, TimeSpan) |
Рассчитать срок от интервала
| |
EvalWorkTimeDifference |
Получить количество рабочего времени за период
| |
EvalWorkTimeHoursDifference |
Получить количество рабочего времени за период в часах
| |
EvalWorkTimeSpanDifference |
Получить количество рабочего времени за период
| |
GetGlobalProductionSchedule |
Получить вычислитель глобального производственного календаря в серверном часовом поясе
| |
GetGlobalProductionSchedule(TZSettings) |
Получить вычислитель глобального производственного календаря
| |
GetProductionSchedule(IUser, IEntity) |
Получить вычислитель агрегированного производственного календаря в серверном часовом поясе
| |
GetProductionSchedule(IUser, IEntity, TZSettings) |
Получить вычислитель агрегированного производственного календаря
| |
GetWorkTimeEnd |
Получить окончание рабочего времени для временной точки
| |
GetWorkTimeInDay |
Получить продолжительность базового рабочего дня
| |
GetWorkTimeInDay(DateTime) |
Получение продолжительности рабочего дня от временной точки
| |
GetWorkTimeStart |
Получить начало рабочего времени для временной точки
| |
IsWorkDay(DateTime) |
Временная точка - рабочий день
| |
IsWorkDay(DateTime, Boolean) |
Временная точка - рабочий день
| |
MinutesInDay |
Получить продолжительность базового рабочего дня в минутах
| |
MinutesInDay(DateTime) |
Получить продолжительность базового рабочего дня от временной точки в минутах
|
// Сервис производственного календаря позволяет непосредственно, или через вычислитель календаря: // - Получить дату начала недели от временной точки // - Получить название месяца от временной точки // - Проверить на рабочий день // - Получить рабочие дни недели // - Получить количество рабочих дней за период // - Получить начало рабочего времени для временной точки // - Получить окончание рабочего времени для временной точки // - Получить продолжительность базового рабочего дня // - Получить продолжительность рабочего дня от временной точки // - Получить количество рабочего времени за период // - Рассчитать срок // Запиcать сервис в переменную, для удобства работы с ним var service = PublicAPI.Services.ProductionCalendar; // Получить вычислитель агрегированного производственного календаря // Для этого необходимо передать в метод максимальное количество информации для агрегации // Пользователь системы - при агрегации данных производственного календаря будут учтены индивидуальные настройки производственного календаря пользователя, его отгулы, отпуск и прочая информация // Сущность - при агрегации данных производственного календаря будут учтены данные календаря соответствующие сущности, например календарь процесса, проекта и так далее // Настройки часового пояса - по умолчанию вычислитель агрегированного производственного календаря будет настроен в серверном часовом поясе, при необходимости использовать метод, принимающий настройки часового пояса в качестве параметра var productionSchedule = service.GetProductionSchedule(пользователь, сущность); // или var productionSchedule = service.GetProductionSchedule(пользователь, сущность, настройки часового пояса); // Получить вычислитель глоабльного производственного календаря // Настройки часового пояса - по умолчанию вычислитель агрегированного производственного календаря будет настроен в серверном часовом поясе, при необходимости использовать метод, принимающий настройки часового пояса в качестве параметра var productionSchedule = service.GetGlobalProductionSchedule(); // или var productionSchedule = service.GetGlobalProductionSchedule(настройки часового пояса); // При использовании часовых поясов важно помнить о том, что передаваемое в методы вычислителя время должно быть в часовом поясе среды выполнения // В 99% для выполнения этого условия ничего делать не нужно, но если по какой-либо причине условия не выполнилось - использовать методы трансформации времени статического класса EleWise.ELMA.TZ // Все методы расчета сервиса работают с учетом глобального производственного календаря в серверном часовом поясе и допустимы к использованию только для систем, работающих в одном часовом поясе, с единственным, глоабльным, производственным календарем // Рекомендуется использовать методы вычислителя полученного посредством методов описанных выше // Проверить, является ли день рабочим var isWorkingDay = service.IsWorkDay(время); // Получить срок от интервала - формата TimeSpan var deadlineByTimeSpan = service.EvalTargetTime(время начала, интервал времени); // Получить срок от интервала в часах формат - double var deadlineByHours = service.EvalTargetTime(время начала, интервал времени в часах); // Добавить количество дней и получить время начала рабочего дня (срока) с учетом календаря (с учетом рабочих дней, но без учета рабочего времени в рабочем дне) var deadlineByDays = service.AddDays(время начала, интервал времени в днях) // Получить количество рабочего времени за период в формате TimeSpan, где // Days - количество рабочих дней (не количество рабочих часов переведенное в дни, учитывается рабочий день без учета продолжительности рабочего времени) // Hours, Minutes, Seconds - рабочее время в часах // Например, за период с ПН по СР при условии что ПН, ВТ, СР - рабочие дни вернется TimeSpan, где // Days == 1 (это вторник), остальное это рабочее время за ПН + рабочее время за СР var timeSpan = service.EvalWorkTimeSpanDifference(начало периода, конец периода); // Получить количество рабочего времени за период в формате TimeSpan - количество часов рабочего времени в формате TimeSpan var timeSpanByHours = service.EvalWorkTimeDifference(начало периода, конец периода); // Получить количество рабочего времени за период в часах - формат double var doubleByHours = service.EvalWorkTimeHoursDifference(начало периода, конец периода); // Получить время начала рабочего дня var workingTimeStart = service.GetWorkTimeStart(время); // Получить время окончания рабочего дня var workingTimeEnd = service.GetWorkTimeEnd(время); // Получить продолжительность базового рабочего дня var baseWorkingDayDuration = service.GetWorkTimeInDay(); // Получить продолжительность базового рабочего дня var baseWorkingDayDuration = service.GetWorkTimeInDay(время); // Получить продолжительность базового рабочего дня в минутах var minutesInDay = service.MinutesInDay(); // Получить продолжительность базового рабочего дня в минутах var minutesInDay = service.MinutesInDay(время);