Class Calendar

Calendar class

Представляет календарь, используемый в проекте.

public class Calendar

Характеристики

ИмяОписание
BaseCalendar { get; set; }Получает или задает базовый календарь, от которого зависит этот календарь. Применяется только в том случае, если календарь не является базовым.
Exceptions { get; }Получает объект CalendarExceptionCollection. Коллекция исключений, связанных с календарем.
IsBaseCalendar { get; }Получает значение, указывающее, является ли календарь базовым календарем.
IsBaselineCalendar { get; set; }Получает или задает значение, указывающее, является ли календарь базовым календарем.
Name { get; set; }Получает или задает имя календаря.
Uid { get; set; }Получает или задает уникальный идентификатор календаря.
WeekDays { get; }Получает WeekDaysCollection для этого календаря. Коллекция дней недели, которая определяет календарь.
WorkWeeks { get; }Получает объект WorkWeekCollections. Коллекция рабочих недель, связанная с календарем.

Методы

ИмяОписание
static Make24HourCalendar(Calendar)Делает данный календарь 24-часовым календарем. 24-часовой календарь — это календарь, в котором каждый день недели работает с круглосуточным рабочим временем.
static MakeNightShiftCalendar(Calendar)Делает данный календарь календарем ночной смены.
static MakeStandardCalendar(Calendar)Создает стандартный календарь по умолчанию.
Delete()Удаляет календарь из проекта.
override Equals(object)Возвращает значение, указывающее, равен ли этот экземпляр указанному объекту.
GetFinishDateByStartAndWork(DateTime, Duration)Вычисляет дату, когда пройдет указанное количество рабочего времени по календарю.
GetFinishDateByStartAndWork(DateTime, TimeSpan)Вычисляет дату, когда пройдет указанное количество рабочего времени по календарю.
override GetHashCode()Возвращает хэш-код экземпляра класса.
GetNextWorkingDayStart(DateTime)Рассчитывает начало следующего рабочего дня с даты.
GetPreviousWorkingDayEnd(DateTime)Вычисляет конец предыдущей рабочей даты от указанной даты.
GetStartDateFromFinishAndDuration(DateTime, Duration)Возвращает StartDate на основе указанных FinishDate и Duration.
GetStartDateFromFinishAndDuration(DateTime, TimeSpan)Возвращает StartDate на основе указанных FinishDate и Duration.
GetTaskFinishDateFromDuration(Task, TimeSpan)Вычисляет дату и время окончания задачи, исходя из даты ее начала, разделенных частей и продолжительности.
GetWorkingHours(DateTime)Возвращает количество рабочих часов на дату.
GetWorkingHours(DateTime, DateTime)Возврат рабочего времени для указанных дат.
GetWorkingTimes(DateTime)ВозвращаетWorkingTimeCollection рабочего времени на указанную дату.
IsDayWorking(DateTime)Определяет, является ли день рабочим.

Примечания

Календари используются для определения стандартного рабочего и нерабочего времени. Проекты должны иметь один базовый календарь. Задачи и ресурсы могут иметь собственные небазовые календари, основанные на базовом календаре.

Примеры

Как создать простой календарь с нуля.

[C#]
// создаем пустой календарь
Calendar calendar = new Calendar("New calendar");
// добавляем рабочие дни по умолчанию (8 рабочих часов с 9:00 до 17:00)
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
// создаем новый новый рабочий день
WeekDay myWeekDay = new WeekDay(DayType.Thursday);
// Устанавливает рабочее время. Важна только временная часть DateTime
    WorkingTime wt1 = new WorkingTime();
    wt1.FromTime = new DateTime(1, 1, 1, 6, 0, 0, 0);
    wt1.ToTime = new DateTime(1, 1, 1, 12, 0, 0, 0);
    WorkingTime wt2 = new WorkingTime();
    wt2.FromTime = new DateTime(1, 1, 1, 14, 0, 0, 0);
    wt2.ToTime = new DateTime(1, 1, 1, 18, 0, 0, 0);
    myWeekDay.WorkingTimes.Add(wt1);
    myWeekDay.WorkingTimes.Add(wt2);
    myWeekDay.DayWorking = true;
calendar.Days.Add(myWeekDay);
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Friday));
// добавляем выходные
calendar.Days.Add(new WeekDay(DayType.Saturday));
calendar.Days.Add(new WeekDay(DayType.Sunday));
[VB]
' создать пустой календарь
Dim calendar As Calendar =  New Calendar("New calendar")
' добавляет рабочие дни по умолчанию (8 рабочих часов с 9:00 до 17:00)
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday))
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday))
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday))
' создать новый новый рабочий день
Dim myWeekDay As WeekDay =  New WeekDay(DayType.Thursday)
' Устанавливает рабочее время. Важна только временная часть DateTime
    Dim wt1 As WorkingTime =  New WorkingTime()
    wt1.FromTime = New DateTime(1, 1, 1, 6, 0, 0, 0)
    wt1.ToTime = New DateTime(1, 1, 1, 12, 0, 0, 0)
    Dim wt2 As WorkingTime =  New WorkingTime()
    wt2.FromTime = New DateTime(1, 1, 1, 14, 0, 0, 0)
    wt2.ToTime = New DateTime(1, 1, 1, 18, 0, 0, 0)
    myWeekDay.WorkingTimes.Add(wt1)
    myWeekDay.WorkingTimes.Add(wt2)
    myWeekDay.DayWorking = True
calendar.Days.Add(myWeekDay)
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Friday))
' добавляет выходные
calendar.Days.Add(New WeekDay(DayType.Saturday))
calendar.Days.Add(New WeekDay(DayType.Sunday))

Смотрите также