设置法定假日和调休
以2024年为例,中秋和国庆的放假安排如下:
1、中秋节,9月15日至17日放假,共3天,9月14日(星期六)上班。
2、国庆节:10月1日至7日放假,共7天 ,9月29日(星期日)、10月12日(星期六)上班。
参考代码:
Dim
gv
As
GanttView = e.Form.Controls("GanttView1").GanttView
Dim
exp
As
New
Gantt.CalendarException()
'定义一个日历例外
exp.Name =
"2024中秋放假"
exp.StartDate =
New
Date(2024,
9, 15)
'从9月15日开始放假
exp.NumberOfOccurrences = 3
'放假3天
gv.CalendarExceptions.Add(exp)
'将例外添加到集合中
exp =
New
Gantt.CalendarException()
'再次定义一个日历例外
exp.Name =
"2024中秋补班"
exp.Workday =
True
'明确这是工作日,日历例外默认是休息日,
exp.StartDate =
New
Date(2024,
9, 14)
'从9月14日开始补班1天,因为NumberOfOccurrences默认是1,所以不需要设置
exp.Interval_1.Empty =
False
'设置第一个工作时段为上午9点到12点,注意必须将Empty舒心设置为False
exp.Interval_1.From =
New
Date(1,
1, 1, 9, 0, 0, 0)
exp.Interval_1.To =
New
Date(1,
1, 1, 12, 0, 0, 0)
exp.Interval_2.Empty =
False
'设置第二个工作时段为下午2点到6点
exp.Interval_2.From =
New
Date(1,
1, 1, 14, 0, 0, 0)
exp.Interval_2.To =
New
Date(1,
1, 1, 18, 0, 0, 0)
gv.CalendarExceptions.Add(exp)
'这次换个方式,不用NumberOfOccurrences指定放假天数,而是用StartDate和FinishDate指定放假起始日期
exp =
New
Gantt.CalendarException()
exp.Name =
"2024国庆放假"
exp.StartDate =
New
Date(2024,
10, 1)
'放假开始日
exp.FinishDate =
New
Date(2024,
10, 7)
'放假结束日
'注意必须设置LimitedBy属性设置为FinishDate,FinishDate属性才会生效:
exp.LimitedBy = C1.Win.C1GanttView.ExceptionLimitedBy.FinishDate
gv.CalendarExceptions.Add(exp)
exp =
New
Gantt.CalendarException()
exp.Name =
"2024国庆补班1"
exp.Workday =
True
exp.StartDate =
New
Date(2024,
9, 29)
exp.Interval_1.Empty =
False
exp.Interval_1.From =
New
Date(1,
1, 1, 9, 0, 0, 0)
exp.Interval_1.To =
New
Date(1,
1, 1, 12, 0, 0, 0)
exp.Interval_2.Empty =
False
exp.Interval_2.From =
New
Date(1,
1, 1, 14, 0, 0, 0)
exp.Interval_2.To =
New
Date(1,
1, 1, 18, 0, 0, 0)
gv.CalendarExceptions.Add(exp)
exp =
New
Gantt.CalendarException()
exp.Name =
"2024国庆补班2"
exp.Workday =
True
exp.StartDate =
New
Date(2024,
10, 12)
exp.Interval_1.Empty =
False
exp.Interval_1.From =
New
Date(1,
1, 1, 9, 0, 0, 0)
exp.Interval_1.To =
New
Date(1,
1, 1, 12, 0, 0, 0)
exp.Interval_2.Empty =
False
exp.Interval_2.From =
New
Date(1,
1, 1, 14, 0, 0, 0)
exp.Interval_2.To =
New
Date(1,
1, 1, 18, 0, 0, 0)
gv.CalendarExceptions.Add(exp)