Holidays in Belarus + codestyle (#1380)

* Holidays in Belarus + codestyle

* Correction + changing hardcode with variable
This commit is contained in:
Dmitry 2020-03-07 05:40:58 +03:00 committed by GitHub
parent 0ca50cfb7f
commit fd61fcbeeb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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