From e2133caff06aa9970a78f36119fb5d4f02513d4d Mon Sep 17 00:00:00 2001 From: Tino Hager Date: Mon, 30 Sep 2024 22:42:57 +0200 Subject: [PATCH] Switzerland - Fix Immaculate Conception (#695) - https://github.com/nager/Nager.Date/issues/683 --- .../SwitzerlandHolidayProvider.cs | 35 ++++++++++++++----- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/src/Nager.Date/HolidayProviders/SwitzerlandHolidayProvider.cs b/src/Nager.Date/HolidayProviders/SwitzerlandHolidayProvider.cs index 973bc24f..4fe09fa6 100644 --- a/src/Nager.Date/HolidayProviders/SwitzerlandHolidayProvider.cs +++ b/src/Nager.Date/HolidayProviders/SwitzerlandHolidayProvider.cs @@ -129,14 +129,6 @@ protected override IEnumerable GetHolidaySpecifications(in SubdivisionCodes = ["CH-LU", "CH-UR", "CH-SZ", "CH-OW", "CH-NW", "CH-GL", "CH-ZG", "CH-FR", "CH-SO", "CH-AI", "CH-SG", "CH-GR", "CH-AG", "CH-TI", "CH-VS", "CH-JU"] }, new HolidaySpecification - { - Date = new DateTime(year, 12, 8), - EnglishName = "Immaculate Conception", - LocalName = "Mariä Empfängnis", - HolidayTypes = HolidayTypes.Public, - SubdivisionCodes = ["CH-LU", "CH-UR", "CH-SZ", "CH-OW", "CH-NW", "CH-ZG", "CH-FR", "CH-SO", "CH-AI", "CH-GR", "CH-AG", "CH-TI", "CH-VS"] - }, - new HolidaySpecification { Date = new DateTime(year, 12, 25), EnglishName = "Christmas Day", @@ -179,6 +171,7 @@ protected override IEnumerable GetHolidaySpecifications(in this._catholicProvider.AscensionDay("Auffahrt", year), }; + holidaySpecifications.AddRangeIfNotNull(this.ImmaculateConception(year)); holidaySpecifications.AddRangeIfNotNull(this.WhitMonday(year)); holidaySpecifications.AddRangeIfNotNull(this.EasterMonday(year)); holidaySpecifications.AddRangeIfNotNull(this.Epiphany(year)); @@ -303,6 +296,32 @@ private HolidaySpecification[] CorpusChristi(int year) ]; } + private HolidaySpecification[] ImmaculateConception(int year) + { + var englishName = "Immaculate Conception"; + var localName = "Mariä Empfängnis"; + + return + [ + new HolidaySpecification + { + Date = new DateTime(year, 12, 8), + EnglishName = englishName, + LocalName = localName, + HolidayTypes = HolidayTypes.Public, + SubdivisionCodes = ["CH-LU", "CH-UR", "CH-SZ", "CH-OW", "CH-NW", "CH-ZG", "CH-FR", "CH-SO", "CH-AG", "CH-TI", "CH-VS"] + }, + new HolidaySpecification + { + Date = new DateTime(year, 12, 8), + EnglishName = englishName, + LocalName = localName, + HolidayTypes = HolidayTypes.Observance, + SubdivisionCodes = ["CH-AI", "CH-JU"] + } + ]; + } + /// public override IEnumerable GetSources() {