diff --git a/python/fbprophet/hdays.py b/python/fbprophet/hdays.py index 59ae502..755d9e6 100644 --- a/python/fbprophet/hdays.py +++ b/python/fbprophet/hdays.py @@ -15,7 +15,7 @@ from lunarcalendar import Lunar, Converter from lunarcalendar.converter import DateNotExist from holidays import WEEKEND, HolidayBase -from dateutil.easter import easter +from dateutil.easter import easter, EASTER_ORTHODOX from dateutil.relativedelta import relativedelta as rd @@ -1185,7 +1185,7 @@ class Egypt(HolidayBase): # The Monday following Orthodox Easter name = "Sham El Nessim" for offset in range(-1, 2, 1): - orthodox_easter = easter(year + offset, method=2) + orthodox_easter = easter(year + offset, method=EASTER_ORTHODOX) ds = orthodox_easter + timedelta(days=1) if ds.year == year: self[ds] = name @@ -1300,6 +1300,7 @@ class China(HolidayBase): class CN(China): pass + # ------------ Holidays in Russia--------------------- class Russia(HolidayBase): """ @@ -1362,6 +1363,7 @@ class Russia(HolidayBase): class RU(Russia): pass + # ------------ Holidays in Republic of Korea--------------------- class Korea(HolidayBase): """ @@ -1430,3 +1432,62 @@ class Korea(HolidayBase): class KR(Korea): pass + + +# ------------ Holidays in Belarus--------------------- +class Belarus(HolidayBase): + """ + Implement public holidays in Belarus + + Reference: + https://en.wikipedia.org/wiki/Public_holidays_in_Belarus + + Please note: + Some holidays might collide with weekends and therefore not compensated with next business day + as International Women's Day + """ + + def __init__(self, **kwargs): + self.country = "BY" + HolidayBase.__init__(self, **kwargs) + + def _populate(self, year): + # New Year's Day + name = "New Year's Day" + self[date(year, 1, 1)] = name + + # Orthodox Christmas day + name = "Orthodox Christmas Day" + self[date(year, 1, 7)] = name + + # International Women's Day + name = "International Women's Day" + self[date(year, 3, 8)] = name + + # Commemoration Day + name = "Commemoration Day" + self[easter(year, EASTER_ORTHODOX) + timedelta(days=9)] = name + + # Spring and Labour Day + name = "Spring and Labour Day" + self[date(year, 5, 1)] = name + + # Victory Day + name = "Victory Day" + self[date(year, 5, 9)] = name + + # Independence Day + name = "Independence Day" + self[date(year, 7, 3)] = name + + # October Revolution Day + name = "October Revolution Day" + self[date(year, 11, 7)] = name + + # Dec. 25 Christmas Day + name = "Christmas Day" + self[date(year, 12, 25)] = name + + +class BY(Belarus): + pass