diff --git a/v2/jp/jp_holidays.go b/v2/jp/jp_holidays.go index 61f8869..604834b 100644 --- a/v2/jp/jp_holidays.go +++ b/v2/jp/jp_holidays.go @@ -145,12 +145,24 @@ var ( // MountainDay represents Mountain Day on 11-August MountainDay = &cal.Holiday{ - Name: "Mountain Day", - Type: cal.ObservancePublic, - Month: time.August, - Day: 11, - Observed: weekendAlt, - Func: cal.CalcDayOfMonth, + Name: "Mountain Day", + Type: cal.ObservancePublic, + Month: time.August, + Day: 11, + Observed: weekendAlt, + Func: func(h *cal.Holiday, year int) time.Time { + switch year { + case 2020: + // Mountain Day is observed on August 10 in 2020 + return time.Date(year, time.August, 10, 0, 0, 0, 0, time.Local) + case 2021: + // Mountain Day is observed on August 8 from 2021 + return time.Date(year, time.August, 8, 0, 0, 0, 0, time.Local) + default: + // For all other years, Mountain Day is observed on August 11 + return time.Date(year, time.August, 11, 0, 0, 0, 0, time.Local) + } + }, StartYear: 2016, } diff --git a/v2/jp/jp_holidays_test.go b/v2/jp/jp_holidays_test.go index d2c6068..22167ef 100644 --- a/v2/jp/jp_holidays_test.go +++ b/v2/jp/jp_holidays_test.go @@ -131,9 +131,11 @@ func TestHolidays(t *testing.T) { {MountainDay, 2017, d(2017, 8, 11), d(2017, 8, 11)}, {MountainDay, 2018, d(2018, 8, 11), d(2018, 8, 11)}, {MountainDay, 2019, d(2019, 8, 11), d(2019, 8, 12)}, - {MountainDay, 2020, d(2020, 8, 11), d(2020, 8, 11)}, - {MountainDay, 2021, d(2021, 8, 11), d(2021, 8, 11)}, + {MountainDay, 2020, d(2020, 8, 10), d(2020, 8, 10)}, + {MountainDay, 2021, d(2021, 8, 8), d(2021, 8, 9)}, {MountainDay, 2022, d(2022, 8, 11), d(2022, 8, 11)}, + {MountainDay, 2023, d(2023, 8, 11), d(2023, 8, 11)}, + {MountainDay, 2024, d(2024, 8, 11), d(2024, 8, 12)}, {RespectForTheAgedDay, 2015, d(2015, 9, 21), d(2015, 9, 21)}, {RespectForTheAgedDay, 2016, d(2016, 9, 19), d(2016, 9, 19)},