MonthlyDayOfWeekExceptionRule Class
Represents a rule that specifies an exception that reoccurs every month in a particular week of the month and day of the week.
Namespace: DevExpress.XtraGantt.Exceptions
Assembly: DevExpress.XtraGantt.v21.1.dll
NuGet Packages: DevExpress.Win.Design, DevExpress.Win.Gantt
Declaration
Examples
The code below shows how to specify custom exception rules.
using DevExpress.XtraGantt;
using DevExpress.XtraGantt.Base.Scheduling;
using DevExpress.XtraGantt.Exceptions;
using DevExpress.XtraGantt.Scheduling;
private ExceptionRule[] CreateCustomRules() {
// The rule applies seven times starting from 8/19/2019 each day.
DaysExceptionRule OneWeek = new DaysExceptionRule() {
StartDate = new DateTime(2019, 8, 19),
Occurrences = 7
};
// The rule applies to the first day of each month (January, 1; February, 1; etc.)
MonthlyExceptionRule FirstDayInMonth = new MonthlyExceptionRule() {
DayOfMonth = 1
};
// The rule applies to the second Friday of each month.
MonthlyDayOfWeekExceptionRule SecondFridayInMonth = new MonthlyDayOfWeekExceptionRule() {
DayOfWeek = DayOfWeek.Friday,
WeekOfMonth = WeekOfMonth.Second
};
// The rule applies to 31st December 5 times
// each two years starting from 12/31/2019.
YearlyExceptionRule December31 = new YearlyExceptionRule() {
DayOfMonth = 31,
Month = Month.December,
StartDate = new DateTime(2019, 12, 31),
Interval = 2,
Occurrences = 5
};
//The rule applies to the 256th day each year.
YearlyDayOfYearExceptionRule Day256 = new YearlyDayOfYearExceptionRule() {
DayOfYear = 256,
};
// Specify work hours for the 256th day.
Day256.WorkTimes.Add(new WorkTime(9, 12));
return new ExceptionRule[] { SecondFridayInMonth, FirstDayInMonth, OneWeek, Day256, December31 };
}
The code below shows how to specify holidays.
using DevExpress.XtraGantt.Base.Scheduling;
using DevExpress.XtraGantt.Exceptions;
ganttControl1.Exceptions.AddRange(CreateExceptionRules());
ExceptionRule[] CreateExceptionRules() {
YearlyExceptionRule NewYearDay = new YearlyExceptionRule() {
DayOfMonth = 1,
Month = Scheduling.Month.January
};
YearlyDayOfWeekExceptionRule MartinLutherDay = new YearlyDayOfWeekExceptionRule() {
DayOfWeek = System.DayOfWeek.Monday,
Month = Scheduling.Month.January,
WeekOfMonth = Scheduling.WeekOfMonth.Third
};
YearlyDayOfWeekExceptionRule PresidentDay = new YearlyDayOfWeekExceptionRule() {
DayOfWeek = System.DayOfWeek.Monday,
Month = Scheduling.Month.February,
WeekOfMonth = Scheduling.WeekOfMonth.Third
};
YearlyDayOfWeekExceptionRule MemorialDay = new YearlyDayOfWeekExceptionRule() {
DayOfWeek = System.DayOfWeek.Monday,
Month = Scheduling.Month.May,
WeekOfMonth = Scheduling.WeekOfMonth.Last
};
YearlyExceptionRule IndependenceDay = new YearlyExceptionRule() {
DayOfMonth = 4,
Month = Scheduling.Month.July
};
YearlyDayOfWeekExceptionRule LaborDay = new YearlyDayOfWeekExceptionRule() {
DayOfWeek = System.DayOfWeek.Monday,
Month = Scheduling.Month.September,
WeekOfMonth = Scheduling.WeekOfMonth.First
};
YearlyDayOfWeekExceptionRule ColumbusDay = new YearlyDayOfWeekExceptionRule() {
DayOfWeek = System.DayOfWeek.Monday,
Month = Scheduling.Month.October,
WeekOfMonth = Scheduling.WeekOfMonth.Second
};
YearlyExceptionRule VeteransDay = new YearlyExceptionRule() {
DayOfMonth = 11,
Month = Scheduling.Month.November
};
YearlyDayOfWeekExceptionRule ThanksgivingDay = new YearlyDayOfWeekExceptionRule() {
DayOfWeek = System.DayOfWeek.Thursday,
Month = Scheduling.Month.November,
WeekOfMonth = Scheduling.WeekOfMonth.Forth
};
YearlyExceptionRule ChristmasDay = new YearlyExceptionRule() {
DayOfMonth = 25,
Month = Scheduling.Month.December
};
return new ExceptionRule[] {
NewYearDay,
MartinLutherDay,
PresidentDay,
MemorialDay,
IndependenceDay,
LaborDay,
ColumbusDay,
VeteransDay,
ThanksgivingDay,
ChristmasDay
};
}
Note
Run the XtraGantt demo to see the complete example. Click Open Solution in the ribbon for source codes.
Inheritance
Object
BaseRule
ExceptionRule
WorkTimesExceptionRule
MonthlyDayOfWeekExceptionRule
See Also