Skip to content

Commit a96d816

Browse files
authored
Australia - Add Friday before AFL Grand Final (#684)
#565 #681
1 parent 1fbd845 commit a96d816

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

src/Nager.Date/HolidayProviders/AustraliaHolidayProvider.cs

+63
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ protected override IEnumerable<HolidaySpecification> GetHolidaySpecifications(in
190190
holidaySpecifications.AddRangeIfNotNull(this.LabourDay(year));
191191
holidaySpecifications.AddRangeIfNotNull(this.MonarchBirthday(year));
192192
holidaySpecifications.AddIfNotNull(this.MourningForQueenElizabeth(year));
193+
holidaySpecifications.AddIfNotNull(this.FridayBeforeTheAflGrandFinal(year));
193194

194195
return holidaySpecifications;
195196
}
@@ -308,6 +309,68 @@ private HolidaySpecification[] MonarchBirthday(int year)
308309
return null;
309310
}
310311

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+
311374
/// <inheritdoc/>
312375
public override IEnumerable<string> GetSources()
313376
{

0 commit comments

Comments
 (0)