Skip to content

Commit

Permalink
Update Ireland holidays: finish migration to holiday groups (#1350)
Browse files Browse the repository at this point in the history
  • Loading branch information
KJhellico authored Jul 6, 2023
1 parent c35442e commit ec22084
Showing 1 changed file with 26 additions and 33 deletions.
59 changes: 26 additions & 33 deletions holidays/countries/ireland.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
from datetime import date
from datetime import timedelta as td

from holidays.calendars.gregorian import FEB, MAR, MAY, JUN, AUG, OCT, DEC, MON
from holidays.calendars.gregorian import FEB, MAR, MAY, JUN, AUG, OCT, MON
from holidays.holiday_base import HolidayBase
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays

Expand Down Expand Up @@ -49,44 +49,37 @@ def _populate(self, year):
# St. Brigid's Day.
if year >= 2023:
dt = date(year, FEB, 1)
self[
dt if self._is_friday(dt) else self._get_nth_weekday_from(1, MON, dt)
] = "St. Brigid's Day"

# St. Patrick's Day
name = "St. Patrick's Day"
dt = date(year, MAR, 17)
self[dt] = name
if self.observed and self._is_weekend(dt):
self[self._get_nth_weekday_from(1, MON, dt)] = name + " (Observed)"
self._add_holiday(
"St. Brigid's Day",
dt if self._is_friday(dt) else self._get_nth_weekday_from(1, MON, dt),
)

# St. Patrick's Day.
self._add_observed(self._add_holiday("St. Patrick's Day", MAR, 17))

# Easter Monday.
self._add_easter_monday("Easter Monday")

# May Day.
if year >= 1978:
name = "May Day"
if year == 1995:
dt = date(year, MAY, 8)
else:
dt = self._get_nth_weekday_of_month(1, MON, MAY)
self[dt] = name

# June bank holiday (first Monday in June)
self[self._get_nth_weekday_of_month(1, MON, JUN)] = "June Bank Holiday"

# Summer bank holiday (first Monday in August)
self[self._get_nth_weekday_of_month(1, MON, AUG)] = "August Bank Holiday"

# October Bank Holiday (last Monday in October)
self[self._get_nth_weekday_of_month(-1, MON, OCT)] = "October Bank Holiday"

# Christmas Day
name = "Christmas Day"
dt = date(year, DEC, 25)
self[dt] = name
if self.observed and self._is_weekend(dt):
self[self._get_nth_weekday_from(1, MON, dt)] = name + " (Observed)"
self._add_holiday(
"May Day",
date(year, MAY, 8)
if year == 1995
else self._get_nth_weekday_of_month(1, MON, MAY),
)

# June Bank holiday.
self._add_holiday("June Bank Holiday", self._get_nth_weekday_of_month(1, MON, JUN))

# Summer Bank holiday.
self._add_holiday("August Bank Holiday", self._get_nth_weekday_of_month(1, MON, AUG))

# October Bank Holiday.
self._add_holiday("October Bank Holiday", self._get_nth_weekday_of_month(-1, MON, OCT))

# Christmas Day.
self._add_observed(self._add_christmas_day("Christmas Day"))

# St. Stephen's Day.
self._add_observed(self._add_christmas_day_two("St. Stephen's Day"), days=+2)
Expand Down

0 comments on commit ec22084

Please sign in to comment.