Calendar

Calendar class

Represents a calendar used in a project.

public class Calendar

Properties

Name Description
BaseCalendar { get; set; } Gets or sets the base calendar on which this calendar depends. Only applicable if the calendar is not a base calendar. Read/write Calendar.
Exceptions { get; } Gets CalendarExceptionCollection object. The collection of exceptions that is associated with the calendar.
IsBaseCalendar { get; } Gets a value indicating whether the calendar is a base calendar. Read-only Boolean.
IsBaselineCalendar { get; set; } Gets or sets a value indicating whether the calendar is a baseline calendar. Read/write Boolean.
Name { get; set; } Gets or sets the name of the calendar. Read/write String.
ParentProject { get; } Gets parent project for this calendar.
Uid { get; set; } Gets or sets the unique identifier of the calendar. Read/write Int32.
WeekDays { get; } Gets WeekDaysCollection for this calendar. The collection of weekdays that defines the calendar.
WorkWeeks { get; } Gets WorkWeekCollections object. The collection of work weeks that is associated with the calendar.

Methods

Name Description
static Make24HourCalendar(Calendar) Makes a given Calendar to be a 24Hour Calendar. 24Hours Calendar is a Calendar in which every day of week is working with Round-the-clock working hours.
static MakeNightShiftCalendar(Calendar) Makes a given Calendar as Night Shift Calendar.
static MakeStandardCalendar(Calendar) Creates default standard calendar.
Delete() Removes calendar from project.
override Equals(object) Returns a value indicating whether this instance is equal to a specified object.
GetFinishDateByStartAndWork(DateTime, Duration) Calculates the date when the specified amount of work time will pass according to the calendar.
GetFinishDateByStartAndWork(DateTime, TimeSpan) Calculates the date when the specified amount of work time will pass according to the calendar.
override GetHashCode() Returns a hash code for the instance of the Calendar class.
GetNextWorkingDayStart(DateTime) Calculates next working day start from the date.
GetPreviousWorkingDayEnd(DateTime) Calculates previous working date end from the specified date.
GetStartDateFromFinishAndDuration(DateTime, Duration) Returns StartDate based on specified FinishDate and Duration.
GetStartDateFromFinishAndDuration(DateTime, TimeSpan) Returns StartDate based on specified FinishDate and Duration.
GetTaskFinishDateFromDuration(Task, TimeSpan) Calculates the task finish date and time from its start date, split parts and the duration.
GetWorkingHours(DateTime) Returns amount of working hours at the date.
GetWorkingHours(DateTime, DateTime) Return working hours for the specified dates.
GetWorkingTimes(DateTime) Returns WorkingTimeCollection of working times.
IsDayWorking(DateTime) Determines whether the day is working day.

Remarks

Calendars are used to define standard working and non-working times. Projects must have one base calendar. Tasks and resources can have their own non-base calendars that are based on a base calendar.

Examples

How to create simple calendar from scratch.

[C#]
// create empty calendar
Calendar calendar = new Calendar("New calendar");
// adds default working days (8 working hours from 9:00 to 17:00)
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday));
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday));
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday));
// create new new working day
WeekDay myWeekDay = new WeekDay(DayType.Thursday);
// Sets working time. Only time part of DateTime is important
    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));
// adds weekend
calendar.Days.Add(new WeekDay(DayType.Saturday));
calendar.Days.Add(new WeekDay(DayType.Sunday));
[VB]
' create empty calendar
Dim calendar As Calendar =  New Calendar("New calendar")
' adds default working days (8 working hours from 9:00 to 17:00)
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Monday))
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Tuesday))
calendar.Days.Add(WeekDay.CreateDefaultWorkingDay(DayType.Wednesday))
' create new new working day
Dim myWeekDay As WeekDay =  New WeekDay(DayType.Thursday)
' Sets working time. Only time part of DateTime is important
    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))
' adds weekend
calendar.Days.Add(New WeekDay(DayType.Saturday))
calendar.Days.Add(New WeekDay(DayType.Sunday))

See Also