From 44af9622677461b2b2fb0ec1b6ec949e08857754 Mon Sep 17 00:00:00 2001 From: Tobias Schneider Date: Thu, 23 Apr 2026 16:15:11 +0200 Subject: [PATCH] svalbard: add holidays --- .docs/world.svg | 3 ++ .../jollyday/core/HolidayCalendar.java | 2 +- .../main/resources/holidays/Holidays_sj.xml | 26 ++++++++++++++++ .../jollyday/tests/country/HolidaySJTest.java | 30 +++++++++++++++++++ 4 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 jollyday-core/src/main/resources/holidays/Holidays_sj.xml create mode 100644 jollyday-tests/src/test/java/de/focus_shift/jollyday/tests/country/HolidaySJTest.java diff --git a/.docs/world.svg b/.docs/world.svg index 1aa568220..be2bf9734 100644 --- a/.docs/world.svg +++ b/.docs/world.svg @@ -844,6 +844,9 @@ Norway + + + Svalbard and Jan Mayen diff --git a/jollyday-core/src/main/java/de/focus_shift/jollyday/core/HolidayCalendar.java b/jollyday-core/src/main/java/de/focus_shift/jollyday/core/HolidayCalendar.java index 3b726fa07..774aa0e97 100644 --- a/jollyday-core/src/main/java/de/focus_shift/jollyday/core/HolidayCalendar.java +++ b/jollyday-core/src/main/java/de/focus_shift/jollyday/core/HolidayCalendar.java @@ -31,7 +31,7 @@ public enum HolidayCalendar { NAMIBIA("NA"), NETHERLANDS("NL"), NEW_ZEALAND("NZ"), NICARAGUA("NI"), NIGER("NE"), NIGERIA("NG"), NORWAY("NO"), NYSE("NYSE"), NYSE_EURONEXT("NYSE_EURONEXT"), PANAMA("PA"), PARAGUAY("PY"), PERU("PE"), POLAND("PL"), PORTUGAL("PT"), ROMANIA("RO"), RUSSIA("RU"), RWANDA("RW"), - SAN_MARINO("SM"), SAUDI_ARABIA("SA"), SERBIA("RS"), SIERRA_LEONE("SL"), SEYCHELLES("SC"), SINGAPORE("SG"), SLOWAKIA("SK"), SLOWENIA("SI"), SOMALIA("SO"), SUDAN("SD"), SOUTH_AFRICA("ZA"), SOUTH_SUDAN("SS"), SPAIN("ES"), SURINAME("SR"), SYRIA("SY"), SWEDEN("SE"), SWITZERLAND("CH"), + SAN_MARINO("SM"), SAUDI_ARABIA("SA"), SERBIA("RS"), SIERRA_LEONE("SL"), SEYCHELLES("SC"), SINGAPORE("SG"), SLOWAKIA("SK"), SLOWENIA("SI"), SOMALIA("SO"), SUDAN("SD"), SOUTH_AFRICA("ZA"), SOUTH_SUDAN("SS"), SPAIN("ES"), SVALBARD_AND_JAN_MAYEN("SJ"), SURINAME("SR"), SYRIA("SY"), SWEDEN("SE"), SWITZERLAND("CH"), TARGET("TARGET"), TARGET2_SECURITIES("TARGET2_SECURITIES"), TAJIKISTAN("TJ"), TANZANIA("TZ"), TOGO("TG"), TRINIDAD_AND_TOBAGO("TT"), TUNISIA("TN"), TURKMENISTAN("TM"), TURKEY("TR"), UGANDA("UG"), UKRAINE("UA"), UNITED_ARAB_EMIRATES("AE"), UNITED_KINGDOM(Locale.UK.getCountry()), UNITED_STATES(Locale.US.getCountry()), URUGUAY("UY"), UZBEKISTAN("UZ"), VATICAN_CITY("VA"), VENEZUELA("VE"), VIETNAM("VN"), YEMEN("YE"), diff --git a/jollyday-core/src/main/resources/holidays/Holidays_sj.xml b/jollyday-core/src/main/resources/holidays/Holidays_sj.xml new file mode 100644 index 000000000..91c1eec98 --- /dev/null +++ b/jollyday-core/src/main/resources/holidays/Holidays_sj.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + https://en.wikipedia.org/wiki/Public_holidays_in_Svalbard + https://www.iso.org/obp/ui/#iso:code:3166:SJ + + diff --git a/jollyday-tests/src/test/java/de/focus_shift/jollyday/tests/country/HolidaySJTest.java b/jollyday-tests/src/test/java/de/focus_shift/jollyday/tests/country/HolidaySJTest.java new file mode 100644 index 000000000..e19168eaf --- /dev/null +++ b/jollyday-tests/src/test/java/de/focus_shift/jollyday/tests/country/HolidaySJTest.java @@ -0,0 +1,30 @@ +package de.focus_shift.jollyday.tests.country; + +import org.junit.jupiter.api.Test; + +import static de.focus_shift.jollyday.core.HolidayCalendar.SVALBARD_AND_JAN_MAYEN; +import static de.focus_shift.jollyday.tests.CalendarCheckerApi.assertFor; +import static java.time.Month.JANUARY; +import static java.time.Month.MAY; +import static java.time.Month.DECEMBER; + +class HolidaySJTest { + + @Test + void ensuresHolidays() { + assertFor(SVALBARD_AND_JAN_MAYEN) + .hasFixedHoliday("NEW_YEAR", JANUARY, 1).and() + .hasFixedHoliday("LABOUR_DAY", MAY, 1).and() + .hasFixedHoliday("CONSTITUTION_DAY", MAY, 17).and() + .hasFixedHoliday("CHRISTMAS", DECEMBER, 25).and() + .hasFixedHoliday("STEPHENS", DECEMBER, 26).and() + .hasChristianHoliday("MAUNDY_THURSDAY").and() + .hasChristianHoliday("GOOD_FRIDAY").and() + .hasChristianHoliday("EASTER").and() + .hasChristianHoliday("EASTER_MONDAY").and() + .hasChristianHoliday("ASCENSION_DAY").and() + .hasChristianHoliday("PENTECOST").and() + .hasChristianHoliday("WHIT_MONDAY") + .check(); + } +}