@@ -190,6 +190,7 @@ protected override IEnumerable<HolidaySpecification> GetHolidaySpecifications(in
190
190
holidaySpecifications . AddRangeIfNotNull ( this . LabourDay ( year ) ) ;
191
191
holidaySpecifications . AddRangeIfNotNull ( this . MonarchBirthday ( year ) ) ;
192
192
holidaySpecifications . AddIfNotNull ( this . MourningForQueenElizabeth ( year ) ) ;
193
+ holidaySpecifications . AddIfNotNull ( this . FridayBeforeTheAflGrandFinal ( year ) ) ;
193
194
194
195
return holidaySpecifications ;
195
196
}
@@ -308,6 +309,68 @@ private HolidaySpecification[] MonarchBirthday(int year)
308
309
return null ;
309
310
}
310
311
312
+ private HolidaySpecification ? FridayBeforeTheAflGrandFinal ( int year )
313
+ {
314
+ var holidayName = "Friday before AFL Grand Final" ;
315
+ var subdivisionCodes = new string [ ] { "AU-VIC" } ;
316
+
317
+ switch ( year )
318
+ {
319
+ case 2016 :
320
+ case 2017 :
321
+ case 2018 :
322
+ case 2019 :
323
+ case 2021 :
324
+ case 2023 :
325
+ {
326
+ var lastFridayInSeptember = DateHelper . FindLastDay ( year , Month . September , DayOfWeek . Friday ) ;
327
+
328
+ return new HolidaySpecification
329
+ {
330
+ Date = lastFridayInSeptember ,
331
+ EnglishName = holidayName ,
332
+ LocalName = holidayName ,
333
+ HolidayTypes = HolidayTypes . Public ,
334
+ SubdivisionCodes = subdivisionCodes
335
+ } ;
336
+ }
337
+ case 2020 :
338
+ return new HolidaySpecification
339
+ {
340
+ Date = new DateTime ( year , 10 , 23 ) ,
341
+ EnglishName = holidayName ,
342
+ LocalName = holidayName ,
343
+ HolidayTypes = HolidayTypes . Public ,
344
+ SubdivisionCodes = subdivisionCodes
345
+ } ;
346
+ case 2022 :
347
+ return new HolidaySpecification
348
+ {
349
+ Date = new DateTime ( year , 09 , 23 ) ,
350
+ EnglishName = holidayName ,
351
+ LocalName = holidayName ,
352
+ HolidayTypes = HolidayTypes . Public ,
353
+ SubdivisionCodes = subdivisionCodes
354
+ } ;
355
+ }
356
+
357
+ if ( year > DateTime . Today . Year )
358
+ {
359
+ var tentativeDate = DateHelper . FindLastDay ( year , Month . September , DayOfWeek . Friday ) ;
360
+
361
+ return new HolidaySpecification
362
+ {
363
+ Date = tentativeDate ,
364
+ EnglishName = $ "{ holidayName } (Tentative Date)",
365
+ LocalName = $ "{ holidayName } (Tentative Date)",
366
+ HolidayTypes = HolidayTypes . Public ,
367
+ SubdivisionCodes = subdivisionCodes
368
+ } ;
369
+ }
370
+
371
+ return null ;
372
+ }
373
+
311
374
/// <inheritdoc/>
312
375
public override IEnumerable < string > GetSources ( )
313
376
{
0 commit comments