Для изменения размера нажмите или перетащите

IProductionCalendarService - интерфейс

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

Пространство имён:  EleWise.ELMA.Scheduling
Сборка:  EleWise.ELMA.SDK (в EleWise.ELMA.SDK.dll) Версия: 1.0.0.0
Синтаксис
C#
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(время);
См. также