Skip to main content

DevExpress v24.2 Update — Your Feedback Matters

Our What's New in v24.2 webpage includes product-specific surveys. Your response to our survey questions will help us measure product satisfaction for features released in this major update and help us refine our plans for our next major release.

Take the survey Not interested

DaysExceptionRule Class

Represents a rule that specifies an exception that reoccurs by days.

Namespace: DevExpress.XtraGantt.Exceptions

Assembly: DevExpress.XtraGantt.v24.2.dll

NuGet Package: DevExpress.Win.Gantt

#Declaration

public class DaysExceptionRule :
    ExceptionRule,
    INotifyCollectionChanged<ExceptionDay>

#Examples

This code shows how to how to alternate two full work days and two short work days.

using DevExpress.XtraGantt.Exceptions;

DaysExceptionRule rule = new DaysExceptionRule() {
    StartDate = new DateTime(2019, 9, 12),
    Interval = 2
};
WorkTime morningWorkTime = new WorkTime(9, 12);
WorkTime afternoonWorkTime = new WorkTime(13, 18);
rule.Days.Add(new ExceptionDay(morningWorkTime));
rule.Days.Add(new ExceptionDay(afternoonWorkTime));

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() {

    DailyExceptionRule dailyException = new DailyExceptionRule() {
        StartDate = new DateTime(2019, 8, 19),
        Occurrences = 7
    };
    dailyException.WorkTimes.Add(new WorkTime(9, 12));

    DaysExceptionRule daysException = new DaysExceptionRule() {
        StartDate = new System.DateTime(2023, 9, 27, 0, 0, 0, 0),
        Occurrences = 1
    };

    // The rule applies to the first day of each month (January, 1; February, 1; etc.)
    MonthlyExceptionRule FirstDayInMonth = new MonthlyExceptionRule() {
        DayOfMonth = 1
    };
    FirstDayInMonth.Add(new WorkTime(10, 12));

    // The rule applies to the second Friday of each month.
    MonthlyDayOfWeekExceptionRule SecondFridayInMonth = new MonthlyDayOfWeekExceptionRule() {
        DayOfWeek = DayOfWeek.Friday,
        WeekOfMonth = WeekOfMonth.Second
    };
    SecondFridayInMonth.Add(new WorkTime(9, 12));

    // 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
    };
    December31.Add(new WorkTime(9, 11));

    //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, dailyException, daysException, Day256, December31 };
}
ganttControl1.Exceptions.AddRange(CreateCustomRules());

#Inheritance

See Also