44 lines
1.4 KiB
Python
44 lines
1.4 KiB
Python
from datetime import date
|
|
|
|
from ..core import WesternCalendar, MON, TUE, WED, FRI
|
|
from ..registry_tools import iso_register
|
|
|
|
|
|
@iso_register('CL')
|
|
class Chile(WesternCalendar):
|
|
"Chile"
|
|
FIXED_HOLIDAYS = WesternCalendar.FIXED_HOLIDAYS + (
|
|
(5, 1, "Labour Day"),
|
|
(5, 21, "Navy Day"),
|
|
(6, 29, "Saint Peter and Saint Paul"),
|
|
(7, 16, "Our Lady of Mount Carmel"),
|
|
(9, 18, "National holiday"),
|
|
(9, 19, "Army holiday"),
|
|
(10, 12, "Columbus Day"),
|
|
(12, 31, "Banking Holiday"),
|
|
)
|
|
include_good_friday = True
|
|
include_easter_saturday = True
|
|
include_assumption = True
|
|
include_all_saints = True
|
|
include_immaculate_conception = True
|
|
|
|
def get_variable_days(self, year):
|
|
days = super().get_variable_days(year)
|
|
september_17 = date(year, 9, 17)
|
|
if september_17.weekday() == MON:
|
|
days.append((september_17, '"Bridge" holiday'))
|
|
september_20 = date(year, 9, 20)
|
|
if september_20.weekday() == FRI:
|
|
days.append((september_20, '"Bridge" holiday'))
|
|
|
|
reformation_day = date(year, 10, 31)
|
|
if reformation_day.weekday() == WED:
|
|
reformation_day = date(year, 11, 2)
|
|
elif reformation_day.weekday() == TUE:
|
|
reformation_day = date(year, 10, 27)
|
|
|
|
days.append((reformation_day, "Reformation Day"))
|
|
|
|
return days
|