@@ -56,12 +56,14 @@ protected override IEnumerable<HolidaySpecification> GetHolidaySpecifications(in
5656
5757 var weekendObservedRuleSet = new ObservedRuleSet
5858 {
59- Saturday = date => date . AddDays ( 2 ) , Sunday = date => date . AddDays ( 1 ) ,
59+ Saturday = date => date . AddDays ( 2 ) ,
60+ Sunday = date => date . AddDays ( 1 ) ,
6061 } ;
6162
6263 var weekendSequenceObservedRuleSet = new ObservedRuleSet
6364 {
64- Saturday = date => date . AddDays ( 2 ) , Sunday = date => date . AddDays ( 2 ) ,
65+ Saturday = date => date . AddDays ( 2 ) ,
66+ Sunday = date => date . AddDays ( 2 ) ,
6567 } ;
6668
6769 var holidaySpecifications = new List < HolidaySpecification >
@@ -112,14 +114,6 @@ protected override IEnumerable<HolidaySpecification> GetHolidaySpecifications(in
112114 SubdivisionCodes = [ "AU-TAS" ]
113115 } ,
114116 new HolidaySpecification
115- {
116- Id = "ANZACDAY-01" ,
117- Date = new DateTime ( year , 4 , 25 ) ,
118- EnglishName = "Anzac Day" ,
119- LocalName = "Anzac Day" ,
120- HolidayTypes = HolidayTypes . Public
121- } ,
122- new HolidaySpecification
123117 {
124118 Id = "MAYDAY-01" ,
125119 Date = firstMondayInMay ,
@@ -188,6 +182,7 @@ protected override IEnumerable<HolidaySpecification> GetHolidaySpecifications(in
188182 this . EasterSunday ( year ) ,
189183 } ;
190184
185+ holidaySpecifications . AddRangeIfNotNull ( this . AnzacDay ( year ) ) ;
191186 holidaySpecifications . AddRangeIfNotNull ( this . LabourDay ( year ) ) ;
192187 holidaySpecifications . AddRangeIfNotNull ( this . MonarchBirthday ( year ) ) ;
193188 holidaySpecifications . AddIfNotNull ( this . MourningForQueenElizabeth ( year ) ) ;
@@ -215,6 +210,45 @@ private HolidaySpecification EasterSunday(int year)
215210 return easterSunday ;
216211 }
217212
213+ private HolidaySpecification [ ] AnzacDay ( int year )
214+ {
215+ var holidayDate = new DateTime ( year , 4 , 25 ) ;
216+
217+ var holiday = new HolidaySpecification
218+ {
219+ Id = "ANZACDAY-01" ,
220+ Date = holidayDate ,
221+ EnglishName = "Anzac Day" ,
222+ LocalName = "Anzac Day" ,
223+ HolidayTypes = HolidayTypes . Public
224+ } ;
225+
226+ if ( holidayDate . DayOfWeek == DayOfWeek . Saturday ||
227+ holidayDate . DayOfWeek == DayOfWeek . Sunday )
228+ {
229+ var weekendObservedRuleSet = new ObservedRuleSet
230+ {
231+ Saturday = date => date . AddDays ( 2 ) ,
232+ Sunday = date => date . AddDays ( 1 ) ,
233+ } ;
234+
235+ var holidayWesternAustralia = new HolidaySpecification
236+ {
237+ Id = "ANZACDAY-02" ,
238+ Date = holidayDate ,
239+ EnglishName = "Anzac Day" ,
240+ LocalName = "Anzac Day" ,
241+ HolidayTypes = HolidayTypes . Public ,
242+ SubdivisionCodes = [ "AU-WA" ] ,
243+ ObservedRuleSet = weekendObservedRuleSet
244+ } ;
245+
246+ return [ holiday , holidayWesternAustralia ] ;
247+ }
248+
249+ return [ holiday ] ;
250+ }
251+
218252 private HolidaySpecification [ ] LabourDay ( int year )
219253 {
220254 var firstMondayInMarch = DateHelper . FindDay ( year , Month . March , DayOfWeek . Monday , Occurrence . First ) ;
0 commit comments