holidays 0.60__py3-none-any.whl → 0.62__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- holidays/constants.py +3 -0
- holidays/countries/__init__.py +1 -0
- holidays/countries/albania.py +2 -4
- holidays/countries/angola.py +2 -4
- holidays/countries/argentina.py +23 -1
- holidays/countries/armenia.py +1 -3
- holidays/countries/aruba.py +2 -4
- holidays/countries/australia.py +1 -0
- holidays/countries/azerbaijan.py +31 -8
- holidays/countries/bahamas.py +2 -4
- holidays/countries/barbados.py +2 -4
- holidays/countries/belarus.py +2 -4
- holidays/countries/belize.py +2 -4
- holidays/countries/bolivia.py +1 -3
- holidays/countries/botswana.py +1 -3
- holidays/countries/brazil.py +151 -116
- holidays/countries/brunei.py +159 -72
- holidays/countries/bulgaria.py +1 -6
- holidays/countries/burkina_faso.py +3 -5
- holidays/countries/burundi.py +1 -3
- holidays/countries/cambodia.py +13 -4
- holidays/countries/cameroon.py +2 -4
- holidays/countries/canada.py +7 -11
- holidays/countries/chad.py +2 -4
- holidays/countries/chile.py +1 -3
- holidays/countries/china.py +23 -12
- holidays/countries/congo.py +2 -4
- holidays/countries/croatia.py +1 -3
- holidays/countries/cuba.py +2 -4
- holidays/countries/curacao.py +2 -7
- holidays/countries/cyprus.py +1 -9
- holidays/countries/djibouti.py +2 -4
- holidays/countries/dominica.py +2 -4
- holidays/countries/dominican_republic.py +2 -4
- holidays/countries/eswatini.py +1 -4
- holidays/countries/ethiopia.py +1 -3
- holidays/countries/finland.py +6 -3
- holidays/countries/france.py +1 -0
- holidays/countries/gabon.py +2 -4
- holidays/countries/georgia.py +1 -3
- holidays/countries/germany.py +4 -56
- holidays/countries/ghana.py +1 -4
- holidays/countries/guernsey.py +328 -0
- holidays/countries/haiti.py +2 -8
- holidays/countries/hongkong.py +2 -3
- holidays/countries/indonesia.py +1 -3
- holidays/countries/iran.py +1 -3
- holidays/countries/ireland.py +1 -3
- holidays/countries/israel.py +1 -18
- holidays/countries/japan.py +2 -6
- holidays/countries/jersey.py +2 -4
- holidays/countries/kazakhstan.py +2 -4
- holidays/countries/kenya.py +1 -3
- holidays/countries/laos.py +2 -13
- holidays/countries/latvia.py +1 -3
- holidays/countries/lesotho.py +1 -3
- holidays/countries/lithuania.py +1 -3
- holidays/countries/luxembourg.py +1 -1
- holidays/countries/madagascar.py +1 -4
- holidays/countries/malawi.py +1 -4
- holidays/countries/malaysia.py +1 -6
- holidays/countries/malta.py +2 -4
- holidays/countries/moldova.py +2 -4
- holidays/countries/mozambique.py +1 -3
- holidays/countries/namibia.py +1 -3
- holidays/countries/netherlands.py +1 -0
- holidays/countries/new_zealand.py +1 -3
- holidays/countries/nigeria.py +1 -3
- holidays/countries/pakistan.py +1 -3
- holidays/countries/palau.py +5 -7
- holidays/countries/papua_new_guinea.py +2 -4
- holidays/countries/paraguay.py +32 -31
- holidays/countries/philippines.py +1 -3
- holidays/countries/poland.py +1 -3
- holidays/countries/portugal.py +23 -0
- holidays/countries/russia.py +1 -3
- holidays/countries/saint_kitts_and_nevis.py +2 -4
- holidays/countries/seychelles.py +2 -4
- holidays/countries/slovakia.py +2 -4
- holidays/countries/slovenia.py +1 -3
- holidays/countries/south_africa.py +2 -4
- holidays/countries/south_korea.py +1 -6
- holidays/countries/switzerland.py +2 -1
- holidays/countries/taiwan.py +1 -3
- holidays/countries/tanzania.py +2 -8
- holidays/countries/thailand.py +12 -8
- holidays/countries/timor_leste.py +4 -8
- holidays/countries/tonga.py +2 -4
- holidays/countries/turkey.py +2 -7
- holidays/countries/ukraine.py +2 -4
- holidays/countries/united_kingdom.py +2 -8
- holidays/countries/united_states.py +20 -23
- holidays/countries/uruguay.py +2 -7
- holidays/countries/uzbekistan.py +1 -2
- holidays/countries/vanuatu.py +2 -4
- holidays/countries/vatican_city.py +1 -3
- holidays/countries/venezuela.py +1 -0
- holidays/countries/zambia.py +1 -4
- holidays/countries/zimbabwe.py +1 -3
- holidays/financial/__init__.py +1 -0
- holidays/financial/brasil_bolsa_balcao.py +108 -0
- holidays/financial/european_central_bank.py +2 -5
- holidays/financial/ice_futures_europe.py +2 -5
- holidays/financial/ny_stock_exchange.py +20 -21
- holidays/groups/international.py +11 -0
- holidays/helpers.py +4 -4
- holidays/holiday_base.py +10 -4
- holidays/locale/de/LC_MESSAGES/CH.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BN.po +29 -18
- holidays/locale/en_US/LC_MESSAGES/BR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BR.po +263 -0
- holidays/locale/en_US/LC_MESSAGES/BVMF.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BVMF.po +79 -0
- holidays/locale/en_US/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CH.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KH.po +7 -3
- holidays/locale/en_US/LC_MESSAGES/PY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PY.po +18 -14
- holidays/locale/es/LC_MESSAGES/PY.mo +0 -0
- holidays/locale/es/LC_MESSAGES/PY.po +17 -13
- holidays/locale/fr/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/CH.po +1 -1
- holidays/locale/it/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/it/LC_MESSAGES/CH.po +1 -1
- holidays/locale/km/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/km/LC_MESSAGES/KH.po +7 -3
- holidays/locale/ms/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/ms/LC_MESSAGES/BN.po +26 -17
- holidays/locale/pt_BR/LC_MESSAGES/BR.mo +0 -0
- holidays/locale/pt_BR/LC_MESSAGES/BR.po +263 -0
- holidays/locale/pt_BR/LC_MESSAGES/BVMF.mo +0 -0
- holidays/locale/pt_BR/LC_MESSAGES/BVMF.po +79 -0
- holidays/locale/th/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/th/LC_MESSAGES/BN.po +28 -17
- holidays/locale/th/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/th/LC_MESSAGES/KH.po +7 -3
- holidays/locale/uk/LC_MESSAGES/BR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/BR.po +263 -0
- holidays/locale/uk/LC_MESSAGES/BVMF.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/BVMF.po +79 -0
- holidays/locale/uk/LC_MESSAGES/CH.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CH.po +1 -1
- holidays/locale/uk/LC_MESSAGES/PY.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/PY.po +18 -14
- holidays/observed_holiday_base.py +2 -1
- holidays/registry.py +2 -0
- holidays/utils.py +1 -1
- holidays/version.py +1 -1
- {holidays-0.60.dist-info → holidays-0.62.dist-info}/AUTHORS +1 -0
- {holidays-0.60.dist-info → holidays-0.62.dist-info}/METADATA +20 -7
- {holidays-0.60.dist-info → holidays-0.62.dist-info}/RECORD +156 -142
- {holidays-0.60.dist-info → holidays-0.62.dist-info}/WHEEL +1 -1
- {holidays-0.60.dist-info → holidays-0.62.dist-info}/LICENSE +0 -0
- {holidays-0.60.dist-info → holidays-0.62.dist-info}/top_level.txt +0 -0
holidays/countries/brunei.py
CHANGED
|
@@ -61,6 +61,42 @@ class Brunei(
|
|
|
61
61
|
|
|
62
62
|
- Based on: http://www.labour.gov.bn/Lists/Upcomming%20events/AllItems.aspx
|
|
63
63
|
http://www.labour.gov.bn/Download/GUIDE%20TO%20BRUNEI%20EMPLOYMENT%20LAWS%20-%20english%20version-3.pdf
|
|
64
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk12-1997.pdf
|
|
65
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk14-1998.pdf
|
|
66
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk15-1998.pdf
|
|
67
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk14-1999.pdf
|
|
68
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk05-2000.pdf
|
|
69
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk10-2000.pdf
|
|
70
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk13-2000.pdf
|
|
71
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk07-2001.pdf
|
|
72
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk11-2002.pdf
|
|
73
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk02-2003.pdf
|
|
74
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk09-2004.pdf
|
|
75
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk11-2005.pdf
|
|
76
|
+
https://www.pmo.gov.bn/Circulars%20PDF%20Library/jpmsk12-2005.pdf
|
|
77
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk03-2006.pdf
|
|
78
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk17-2006.pdf
|
|
79
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk10-2007.pdf
|
|
80
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk09-2008.pdf
|
|
81
|
+
https://chittychat.wordpress.com/wp-content/uploads/2008/11/school_terms_20091.pdf
|
|
82
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk08-2009.pdf
|
|
83
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk09-2010.pdf
|
|
84
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk10-2011.pdf
|
|
85
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk08-2012.pdf
|
|
86
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk10-2012.pdf
|
|
87
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk07-2013.pdf
|
|
88
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk09-14.pdf
|
|
89
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk11-2015.pdf
|
|
90
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk09-2016.pdf
|
|
91
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk07-2017.pdf
|
|
92
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk08-2017.pdf
|
|
93
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk11-2018.pdf
|
|
94
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk06-2019.pdf
|
|
95
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk10-2020.pdf
|
|
96
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk10-2021.pdf
|
|
97
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk04-2022.pdf
|
|
98
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk04-2023.pdf
|
|
99
|
+
https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk06-2024.pdf
|
|
64
100
|
- Checked with: https://asean.org/wp-content/uploads/2021/12/ASEAN-National-Holidays-2022.pdf
|
|
65
101
|
https://asean.org/wp-content/uploads/2022/12/ASEAN-Public-Holidays-2023.pdf
|
|
66
102
|
https://www.timeanddate.com/holidays/brunei/
|
|
@@ -91,6 +127,8 @@ class Brunei(
|
|
|
91
127
|
observed_estimated_label = tr("%s (diperhatikan, anggaran)")
|
|
92
128
|
supported_languages = ("en_US", "ms", "th")
|
|
93
129
|
weekend = {FRI, SUN}
|
|
130
|
+
# Available post-Independence from 1984 afterwards
|
|
131
|
+
start_year = 1984
|
|
94
132
|
|
|
95
133
|
def __init__(self, *args, **kwargs):
|
|
96
134
|
ChineseCalendarHolidays.__init__(self)
|
|
@@ -102,27 +140,23 @@ class Brunei(
|
|
|
102
140
|
super().__init__(*args, **kwargs)
|
|
103
141
|
|
|
104
142
|
def _populate_public_holidays(self):
|
|
105
|
-
# Available post-Independence from 1984 afterwards
|
|
106
|
-
if self._year <= 1983:
|
|
107
|
-
return None
|
|
108
|
-
|
|
109
143
|
# Awal Tahun Masihi
|
|
110
144
|
# Status: In-Use.
|
|
111
145
|
|
|
112
|
-
# New Year's Day
|
|
146
|
+
# New Year's Day.
|
|
113
147
|
self._add_observed(self._add_new_years_day(tr("Awal Tahun Masihi")))
|
|
114
148
|
|
|
115
149
|
# Tahun Baru Cina
|
|
116
150
|
# Status: In-Use.
|
|
117
151
|
|
|
118
|
-
# Lunar New Year
|
|
152
|
+
# Lunar New Year.
|
|
119
153
|
self._add_observed(self._add_chinese_new_years_day(tr("Tahun Baru Cina")))
|
|
120
154
|
|
|
121
155
|
# Hari Kebangsaan
|
|
122
156
|
# Status: In-Use.
|
|
123
157
|
# Starts in 1984.
|
|
124
158
|
|
|
125
|
-
# National Day
|
|
159
|
+
# National Day.
|
|
126
160
|
self._add_observed(self._add_holiday_feb_23(tr("Hari Kebangsaan")))
|
|
127
161
|
|
|
128
162
|
# Hari Angkatan Bersenjata Diraja Brunei
|
|
@@ -131,7 +165,7 @@ class Brunei(
|
|
|
131
165
|
# Commemorates the formation of Royal Brunei Malay Regiment in 1961.
|
|
132
166
|
|
|
133
167
|
self._add_observed(
|
|
134
|
-
# Armed Forces Day
|
|
168
|
+
# Armed Forces Day.
|
|
135
169
|
self._add_holiday_may_31(tr("Hari Angkatan Bersenjata Diraja Brunei"))
|
|
136
170
|
)
|
|
137
171
|
|
|
@@ -140,14 +174,14 @@ class Brunei(
|
|
|
140
174
|
# Started in 1968.
|
|
141
175
|
|
|
142
176
|
self._add_observed(
|
|
143
|
-
# Sultan Hassanal Bolkiah's Birthday
|
|
177
|
+
# Sultan Hassanal Bolkiah's Birthday.
|
|
144
178
|
self._add_holiday_jul_15(tr("Hari Keputeraan KDYMM Sultan Brunei"))
|
|
145
179
|
)
|
|
146
180
|
|
|
147
181
|
# Hari Natal
|
|
148
182
|
# Status: In-Use.
|
|
149
183
|
|
|
150
|
-
# Christmas Day
|
|
184
|
+
# Christmas Day.
|
|
151
185
|
self._add_observed(self._add_christmas_day(tr("Hari Natal")))
|
|
152
186
|
|
|
153
187
|
# Islamic Holidays are placed after Gregorian holidays to prevent
|
|
@@ -156,61 +190,75 @@ class Brunei(
|
|
|
156
190
|
# Israk dan Mikraj
|
|
157
191
|
# Status: In-Use.
|
|
158
192
|
|
|
159
|
-
# Isra' and Mi'raj
|
|
193
|
+
# Isra' and Mi'raj.
|
|
160
194
|
for dt in self._add_isra_and_miraj_day(tr("Israk dan Mikraj")):
|
|
161
195
|
self._add_observed(dt)
|
|
162
196
|
|
|
163
197
|
# Hari Pertama Berpuasa
|
|
164
198
|
# Status: In-Use.
|
|
165
199
|
|
|
166
|
-
# First Day of Ramadan
|
|
200
|
+
# First Day of Ramadan.
|
|
167
201
|
for dt in self._add_ramadan_beginning_day(tr("Hari Pertama Berpuasa")):
|
|
168
202
|
self._add_observed(dt)
|
|
169
203
|
|
|
170
204
|
# Hari Nuzul Al-Quran
|
|
171
205
|
# Status: In-Use.
|
|
172
206
|
|
|
173
|
-
# Anniversary of the revelation of the Quran
|
|
207
|
+
# Anniversary of the revelation of the Quran.
|
|
174
208
|
for dt in self._add_nuzul_al_quran_day(tr("Hari Nuzul Al-Quran")):
|
|
175
209
|
self._add_observed(dt)
|
|
176
210
|
|
|
177
211
|
# Hari Raya Aidil Fitri
|
|
178
212
|
# Status: In-Use.
|
|
179
213
|
# This is celebrate for three days in Brunei.
|
|
180
|
-
# Observed as 'Hari Raya Puasa' and only for 2 days at certain point.
|
|
181
214
|
# 1: If Wed-Thu-Fri -> Sat (3rd Day +1)
|
|
182
215
|
# 2: If Thu-Fri-Sat -> Mon (2nd Day +3)
|
|
183
|
-
# 3: If Fri-Sat-Sun -> Mon (1st Day +3)
|
|
216
|
+
# 3: If Fri-Sat-Sun -> Mon, Tue (1st Day +3, 3rd day +2)
|
|
184
217
|
# 4: If Sat-Sun-Mon -> Tue (2nd Day +2)
|
|
185
218
|
# 5: If Sun-Mon-Tue -> Wed (1st Day +3)
|
|
186
|
-
|
|
187
|
-
#
|
|
219
|
+
# Observed as 'Hari Raya Puasa' and only for 2 days prior to 2012.
|
|
220
|
+
# 1: If Thu-Fri -> Sat (2nd Day +1)
|
|
221
|
+
# 2: If Fri-Sat -> Mon (1nd Day +2)
|
|
222
|
+
# 3: If Sat-Sun -> Mon (2nd Day +1)
|
|
223
|
+
# 4: If Sun-Mon -> Tue (1st Day +2)
|
|
224
|
+
# This was only observed for a single day in 2000.
|
|
225
|
+
|
|
226
|
+
# Eid al-Fitr.
|
|
188
227
|
name = tr("Hari Raya Aidil Fitri")
|
|
189
|
-
|
|
190
|
-
self.
|
|
191
|
-
|
|
192
|
-
self.
|
|
193
|
-
|
|
194
|
-
self.
|
|
228
|
+
if self._year >= 2012:
|
|
229
|
+
for dt in self._add_eid_al_fitr_day(name):
|
|
230
|
+
self._add_observed(dt, rule=FRI_TO_NEXT_MON + SUN_TO_NEXT_WED)
|
|
231
|
+
for dt in self._add_eid_al_fitr_day_two(name):
|
|
232
|
+
self._add_observed(dt, rule=FRI_TO_NEXT_MON + SUN_TO_NEXT_TUE)
|
|
233
|
+
for dt in self._add_eid_al_fitr_day_three(name):
|
|
234
|
+
self._add_observed(dt, rule=FRI_TO_NEXT_SAT + SUN_TO_NEXT_TUE)
|
|
235
|
+
elif self._year == 2000:
|
|
236
|
+
for dt in self._add_eid_al_fitr_day(name):
|
|
237
|
+
self._add_observed(dt)
|
|
238
|
+
else:
|
|
239
|
+
for dt in self._add_eid_al_fitr_day(name):
|
|
240
|
+
self._add_observed(dt, rule=FRI_TO_NEXT_MON + SUN_TO_NEXT_TUE)
|
|
241
|
+
for dt in self._add_eid_al_fitr_day_two(name):
|
|
242
|
+
self._add_observed(dt)
|
|
195
243
|
|
|
196
244
|
# Hari Raya Aidil Adha
|
|
197
245
|
# Status: In-Use.
|
|
198
246
|
|
|
199
|
-
# Eid al-Adha
|
|
247
|
+
# Eid al-Adha.
|
|
200
248
|
for dt in self._add_eid_al_adha_day(tr("Hari Raya Aidil Adha")):
|
|
201
249
|
self._add_observed(dt)
|
|
202
250
|
|
|
203
251
|
# Awal Tahun Hijrah
|
|
204
252
|
# Status: In-Use.
|
|
205
253
|
|
|
206
|
-
# Islamic New Year
|
|
254
|
+
# Islamic New Year.
|
|
207
255
|
for dt in self._add_islamic_new_year_day(tr("Awal Tahun Hijrah")):
|
|
208
256
|
self._add_observed(dt)
|
|
209
257
|
|
|
210
258
|
# Maulidur Rasul
|
|
211
259
|
# Status: In-Use.
|
|
212
260
|
|
|
213
|
-
# Prophet's Birthday
|
|
261
|
+
# Prophet's Birthday.
|
|
214
262
|
for dt in self._add_mawlid_day(tr("Maulidur Rasul")):
|
|
215
263
|
self._add_observed(dt)
|
|
216
264
|
|
|
@@ -225,101 +273,112 @@ class BRN(Brunei):
|
|
|
225
273
|
|
|
226
274
|
class BruneiIslamicHolidays(_CustomIslamicHolidays):
|
|
227
275
|
EID_AL_ADHA_DATES = {
|
|
228
|
-
|
|
276
|
+
1998: (APR, 7),
|
|
277
|
+
1999: (MAR, 28),
|
|
278
|
+
2000: (MAR, 17),
|
|
229
279
|
2001: (MAR, 6),
|
|
230
280
|
2002: (FEB, 23),
|
|
231
281
|
2003: (FEB, 12),
|
|
232
282
|
2004: (FEB, 2),
|
|
233
283
|
2005: (JAN, 21),
|
|
234
|
-
2006: ((JAN,
|
|
284
|
+
2006: ((JAN, 11), (DEC, 31)),
|
|
235
285
|
2007: (DEC, 20),
|
|
236
|
-
2008: (DEC,
|
|
237
|
-
2009: (NOV,
|
|
238
|
-
2010: (NOV,
|
|
239
|
-
2011: (NOV,
|
|
286
|
+
2008: (DEC, 8),
|
|
287
|
+
2009: (NOV, 27),
|
|
288
|
+
2010: (NOV, 16),
|
|
289
|
+
2011: (NOV, 6),
|
|
240
290
|
2012: (OCT, 26),
|
|
241
291
|
2013: (OCT, 15),
|
|
242
292
|
2014: (OCT, 5),
|
|
243
293
|
2015: (SEP, 24),
|
|
244
|
-
2016: (SEP,
|
|
245
|
-
2017: (SEP,
|
|
294
|
+
2016: (SEP, 12),
|
|
295
|
+
2017: (SEP, 1),
|
|
246
296
|
2018: (AUG, 22),
|
|
247
297
|
2019: (AUG, 11),
|
|
248
|
-
2020: (
|
|
298
|
+
2020: (JUL, 31),
|
|
249
299
|
2021: (JUL, 20),
|
|
250
|
-
2022: (JUL,
|
|
300
|
+
2022: (JUL, 9),
|
|
251
301
|
2023: (JUN, 29),
|
|
252
302
|
2024: (JUN, 17),
|
|
303
|
+
2025: (JUN, 7),
|
|
253
304
|
}
|
|
254
305
|
|
|
255
306
|
EID_AL_FITR_DATES = {
|
|
256
|
-
|
|
257
|
-
|
|
307
|
+
1998: (JAN, 30),
|
|
308
|
+
1999: (JAN, 19),
|
|
309
|
+
2000: ((JAN, 8), (DEC, 27)),
|
|
310
|
+
2001: (DEC, 16),
|
|
258
311
|
2002: (DEC, 6),
|
|
259
|
-
2003: (NOV,
|
|
312
|
+
2003: (NOV, 25),
|
|
260
313
|
2004: (NOV, 14),
|
|
261
|
-
2005: (NOV,
|
|
314
|
+
2005: (NOV, 4),
|
|
262
315
|
2006: (OCT, 24),
|
|
263
316
|
2007: (OCT, 13),
|
|
264
317
|
2008: (OCT, 1),
|
|
265
318
|
2009: (SEP, 20),
|
|
266
319
|
2010: (SEP, 10),
|
|
267
|
-
2011: (AUG,
|
|
320
|
+
2011: (AUG, 30),
|
|
268
321
|
2012: (AUG, 19),
|
|
269
322
|
2013: (AUG, 8),
|
|
270
|
-
2014: (JUL,
|
|
271
|
-
2015: (JUL,
|
|
272
|
-
2016: (JUL,
|
|
273
|
-
2017: (JUN,
|
|
323
|
+
2014: (JUL, 28),
|
|
324
|
+
2015: (JUL, 17),
|
|
325
|
+
2016: (JUL, 6),
|
|
326
|
+
2017: (JUN, 25),
|
|
274
327
|
2018: (JUN, 15),
|
|
275
328
|
2019: (JUN, 5),
|
|
276
329
|
2020: (MAY, 24),
|
|
277
330
|
2021: (MAY, 13),
|
|
278
|
-
2022: (MAY,
|
|
331
|
+
2022: (MAY, 2),
|
|
279
332
|
2023: (APR, 22),
|
|
280
333
|
2024: (APR, 10),
|
|
334
|
+
2025: (MAR, 31),
|
|
281
335
|
}
|
|
282
336
|
|
|
283
337
|
HIJRI_NEW_YEAR_DATES = {
|
|
338
|
+
1998: (APR, 28),
|
|
339
|
+
1999: (APR, 17),
|
|
284
340
|
2000: (APR, 6),
|
|
285
341
|
2001: (MAR, 26),
|
|
286
342
|
2002: (MAR, 15),
|
|
287
|
-
2003: (MAR,
|
|
343
|
+
2003: (MAR, 4),
|
|
288
344
|
2004: (FEB, 22),
|
|
289
345
|
2005: (FEB, 10),
|
|
290
346
|
2006: (JAN, 31),
|
|
291
347
|
2007: (JAN, 20),
|
|
292
348
|
2008: ((JAN, 10), (DEC, 29)),
|
|
293
349
|
2009: (DEC, 18),
|
|
294
|
-
2010: (DEC,
|
|
350
|
+
2010: (DEC, 7),
|
|
295
351
|
2011: (NOV, 27),
|
|
296
352
|
2012: (NOV, 15),
|
|
297
353
|
2013: (NOV, 5),
|
|
298
354
|
2014: (OCT, 25),
|
|
299
|
-
2015: (OCT,
|
|
300
|
-
2016: (OCT,
|
|
355
|
+
2015: (OCT, 14),
|
|
356
|
+
2016: (OCT, 2),
|
|
301
357
|
2017: (SEP, 22),
|
|
302
|
-
2018: (SEP,
|
|
358
|
+
2018: (SEP, 11),
|
|
303
359
|
2019: (SEP, 1),
|
|
304
360
|
2020: (AUG, 20),
|
|
305
361
|
2021: (AUG, 10),
|
|
306
362
|
2022: (JUL, 30),
|
|
307
363
|
2023: (JUL, 19),
|
|
308
364
|
2024: (JUL, 7),
|
|
365
|
+
2025: (JUN, 27),
|
|
309
366
|
}
|
|
310
367
|
|
|
311
368
|
ISRA_AND_MIRAJ_DATES = {
|
|
312
|
-
|
|
369
|
+
1998: (NOV, 17),
|
|
370
|
+
1999: (NOV, 6),
|
|
371
|
+
2000: (OCT, 25),
|
|
313
372
|
2001: (OCT, 15),
|
|
314
373
|
2002: (OCT, 4),
|
|
315
374
|
2003: (SEP, 24),
|
|
316
375
|
2004: (SEP, 12),
|
|
317
376
|
2005: (SEP, 1),
|
|
318
|
-
2006: (AUG,
|
|
377
|
+
2006: (AUG, 21),
|
|
319
378
|
2007: (AUG, 11),
|
|
320
|
-
2008: (JUL,
|
|
379
|
+
2008: (JUL, 30),
|
|
321
380
|
2009: (JUL, 20),
|
|
322
|
-
2010: (JUL,
|
|
381
|
+
2010: (JUL, 10),
|
|
323
382
|
2011: (JUN, 29),
|
|
324
383
|
2012: (JUN, 17),
|
|
325
384
|
2013: (JUN, 6),
|
|
@@ -331,15 +390,18 @@ class BruneiIslamicHolidays(_CustomIslamicHolidays):
|
|
|
331
390
|
2019: (APR, 3),
|
|
332
391
|
2020: (MAR, 22),
|
|
333
392
|
2021: (MAR, 11),
|
|
334
|
-
2022: (
|
|
393
|
+
2022: (FEB, 28),
|
|
335
394
|
2023: (FEB, 18),
|
|
336
395
|
2024: (FEB, 8),
|
|
396
|
+
2025: (JAN, 27),
|
|
337
397
|
}
|
|
338
398
|
|
|
339
399
|
MAWLID_DATES = {
|
|
400
|
+
1998: (JUL, 6),
|
|
401
|
+
1999: (JUN, 26),
|
|
340
402
|
2000: (JUN, 15),
|
|
341
403
|
2001: (JUN, 4),
|
|
342
|
-
2002: (MAY,
|
|
404
|
+
2002: (MAY, 25),
|
|
343
405
|
2003: (MAY, 14),
|
|
344
406
|
2004: (MAY, 2),
|
|
345
407
|
2005: (APR, 21),
|
|
@@ -348,24 +410,27 @@ class BruneiIslamicHolidays(_CustomIslamicHolidays):
|
|
|
348
410
|
2008: (MAR, 20),
|
|
349
411
|
2009: (MAR, 9),
|
|
350
412
|
2010: (FEB, 26),
|
|
351
|
-
2011: (FEB,
|
|
413
|
+
2011: (FEB, 15),
|
|
352
414
|
2012: (FEB, 5),
|
|
353
415
|
2013: (JAN, 24),
|
|
354
416
|
2014: (JAN, 14),
|
|
355
417
|
2015: ((JAN, 3), (DEC, 24)),
|
|
356
418
|
2016: (DEC, 12),
|
|
357
419
|
2017: (DEC, 1),
|
|
358
|
-
2018: (NOV,
|
|
420
|
+
2018: (NOV, 20),
|
|
359
421
|
2019: (NOV, 9),
|
|
360
422
|
2020: (OCT, 29),
|
|
361
423
|
2021: (OCT, 19),
|
|
362
424
|
2022: (OCT, 8),
|
|
363
425
|
2023: (SEP, 28),
|
|
364
426
|
2024: (SEP, 16),
|
|
427
|
+
2025: (SEP, 5),
|
|
365
428
|
}
|
|
366
429
|
|
|
367
430
|
NUZUL_AL_QURAN_DATES = {
|
|
368
|
-
|
|
431
|
+
1998: (JAN, 16),
|
|
432
|
+
1999: ((JAN, 5), (DEC, 25)),
|
|
433
|
+
2000: (DEC, 13),
|
|
369
434
|
2001: (DEC, 3),
|
|
370
435
|
2002: (NOV, 22),
|
|
371
436
|
2003: (NOV, 12),
|
|
@@ -377,23 +442,26 @@ class BruneiIslamicHolidays(_CustomIslamicHolidays):
|
|
|
377
442
|
2009: (SEP, 7),
|
|
378
443
|
2010: (AUG, 27),
|
|
379
444
|
2011: (AUG, 17),
|
|
380
|
-
2012: (AUG,
|
|
381
|
-
2013: (JUL,
|
|
445
|
+
2012: (AUG, 6),
|
|
446
|
+
2013: (JUL, 26),
|
|
382
447
|
2014: (JUL, 15),
|
|
383
448
|
2015: (JUL, 4),
|
|
384
|
-
2016: (JUN,
|
|
449
|
+
2016: (JUN, 22),
|
|
385
450
|
2017: (JUN, 12),
|
|
386
451
|
2018: (JUN, 2),
|
|
387
|
-
2019: (MAY,
|
|
452
|
+
2019: (MAY, 22),
|
|
388
453
|
2020: (MAY, 10),
|
|
389
454
|
2021: (APR, 29),
|
|
390
455
|
2022: (APR, 19),
|
|
391
456
|
2023: (APR, 8),
|
|
392
457
|
2024: (MAR, 28),
|
|
458
|
+
2025: (MAR, 18),
|
|
393
459
|
}
|
|
394
460
|
|
|
395
461
|
RAMADAN_BEGINNING_DATES = {
|
|
396
|
-
|
|
462
|
+
1998: (DEC, 20),
|
|
463
|
+
1999: (DEC, 9),
|
|
464
|
+
2000: (NOV, 27),
|
|
397
465
|
2001: (NOV, 17),
|
|
398
466
|
2002: (NOV, 6),
|
|
399
467
|
2003: (OCT, 27),
|
|
@@ -401,28 +469,47 @@ class BruneiIslamicHolidays(_CustomIslamicHolidays):
|
|
|
401
469
|
2005: (OCT, 5),
|
|
402
470
|
2006: (SEP, 24),
|
|
403
471
|
2007: (SEP, 13),
|
|
404
|
-
2008: (SEP,
|
|
472
|
+
2008: (SEP, 1),
|
|
405
473
|
2009: (AUG, 22),
|
|
406
474
|
2010: (AUG, 11),
|
|
407
475
|
2011: (AUG, 1),
|
|
408
|
-
2012: (JUL,
|
|
409
|
-
2013: (JUL,
|
|
476
|
+
2012: (JUL, 21),
|
|
477
|
+
2013: (JUL, 10),
|
|
410
478
|
2014: (JUN, 29),
|
|
411
479
|
2015: (JUN, 18),
|
|
412
|
-
2016: (JUN,
|
|
480
|
+
2016: (JUN, 6),
|
|
413
481
|
2017: (MAY, 27),
|
|
414
|
-
2018: (MAY,
|
|
482
|
+
2018: (MAY, 17),
|
|
415
483
|
2019: (MAY, 6),
|
|
416
|
-
2020: (APR,
|
|
484
|
+
2020: (APR, 24),
|
|
417
485
|
2021: (APR, 13),
|
|
418
486
|
2022: (APR, 3),
|
|
419
487
|
2023: (MAR, 23),
|
|
420
488
|
2024: (MAR, 12),
|
|
489
|
+
2025: (MAR, 2),
|
|
421
490
|
}
|
|
422
491
|
|
|
423
492
|
|
|
424
493
|
class BruneiStaticHolidays:
|
|
425
494
|
special_public_holidays = {
|
|
426
|
-
|
|
495
|
+
1998: (
|
|
496
|
+
AUG,
|
|
497
|
+
10,
|
|
498
|
+
# Proclamation Ceremony of Crown Prince Al-Muhtadee Billah of Brunei.
|
|
499
|
+
tr("Istiadat Pengisytiharan Duli Pengiran Muda Mahkota Al-Muhtadee Billah"),
|
|
500
|
+
),
|
|
501
|
+
# Royal Wedding of Crown Prince Al-Muhtadee Billah and Crown Princess Sarah of Brunei.
|
|
502
|
+
2004: (SEP, 9, tr("Istiadat Perkahwinan Diraja Brunei 2004")),
|
|
503
|
+
# Sultan Hassanal Bolkiah's Golden Jubilee celebration.
|
|
427
504
|
2017: (OCT, 5, tr("Jubli Emas Sultan Hassanal Bolkiah")),
|
|
428
505
|
}
|
|
506
|
+
special_public_holidays_observed = {
|
|
507
|
+
# Christmas Day.
|
|
508
|
+
1999: (DEC, 27, tr("Hari Natal")),
|
|
509
|
+
# National Day.
|
|
510
|
+
2002: (FEB, 25, tr("Hari Kebangsaan")),
|
|
511
|
+
# New Year's Day.
|
|
512
|
+
2007: (JAN, 2, tr("Awal Tahun Masihi")),
|
|
513
|
+
# Anniversary of the revelation of the Quran.
|
|
514
|
+
2014: (JUL, 16, tr("Hari Nuzul Al-Quran")),
|
|
515
|
+
}
|
holidays/countries/bulgaria.py
CHANGED
|
@@ -48,6 +48,7 @@ class Bulgaria(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
48
48
|
observed_label = tr("%s (почивен ден)")
|
|
49
49
|
supported_categories = (PUBLIC, SCHOOL)
|
|
50
50
|
supported_languages = ("bg", "en_US", "uk")
|
|
51
|
+
start_year = 1990
|
|
51
52
|
|
|
52
53
|
def __init__(self, *args, **kwargs):
|
|
53
54
|
ChristianHolidays.__init__(self, JULIAN_REVISED_CALENDAR)
|
|
@@ -65,9 +66,6 @@ class Bulgaria(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
65
66
|
self._add_observed(dt, name)
|
|
66
67
|
|
|
67
68
|
def _populate_public_holidays(self):
|
|
68
|
-
if self._year <= 1989:
|
|
69
|
-
return None
|
|
70
|
-
|
|
71
69
|
dts_observed = set()
|
|
72
70
|
|
|
73
71
|
# New Year's Day.
|
|
@@ -129,9 +127,6 @@ class Bulgaria(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
|
|
|
129
127
|
)
|
|
130
128
|
|
|
131
129
|
def _populate_school_holidays(self):
|
|
132
|
-
if self._year <= 1989:
|
|
133
|
-
return None
|
|
134
|
-
|
|
135
130
|
# National Awakening Day.
|
|
136
131
|
self._add_holiday_nov_1(tr("Ден на народните будители"))
|
|
137
132
|
|
|
@@ -24,6 +24,9 @@ class BurkinaFaso(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
|
|
|
24
24
|
|
|
25
25
|
country = "BF"
|
|
26
26
|
observed_label = "%s (observed)"
|
|
27
|
+
# On 5 August 1960, Burkina Faso (Republic of Upper Volta at that time)
|
|
28
|
+
# gained independence from France.
|
|
29
|
+
start_year = 1961
|
|
27
30
|
|
|
28
31
|
def __init__(self, *args, **kwargs):
|
|
29
32
|
ChristianHolidays.__init__(self)
|
|
@@ -33,11 +36,6 @@ class BurkinaFaso(ObservedHolidayBase, ChristianHolidays, InternationalHolidays,
|
|
|
33
36
|
super().__init__(*args, **kwargs)
|
|
34
37
|
|
|
35
38
|
def _populate_public_holidays(self):
|
|
36
|
-
# On 5 August 1960, Burkina Faso (Republic of Upper Volta at that time)
|
|
37
|
-
# gained independence from France.
|
|
38
|
-
if self._year <= 1960:
|
|
39
|
-
return None
|
|
40
|
-
|
|
41
39
|
# New Year's Day.
|
|
42
40
|
self._add_observed(self._add_new_years_day("New Year's Day"))
|
|
43
41
|
|
holidays/countries/burundi.py
CHANGED
|
@@ -28,6 +28,7 @@ class Burundi(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Isl
|
|
|
28
28
|
|
|
29
29
|
country = "BI"
|
|
30
30
|
observed_label = "%s (observed)"
|
|
31
|
+
start_year = 1962
|
|
31
32
|
|
|
32
33
|
def __init__(self, *args, **kwargs):
|
|
33
34
|
ChristianHolidays.__init__(self)
|
|
@@ -37,9 +38,6 @@ class Burundi(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Isl
|
|
|
37
38
|
super().__init__(*args, **kwargs)
|
|
38
39
|
|
|
39
40
|
def _populate_public_holidays(self):
|
|
40
|
-
if self._year <= 1961:
|
|
41
|
-
return None
|
|
42
|
-
|
|
43
41
|
# New Year's Day
|
|
44
42
|
self._add_observed(self._add_new_years_day("New Year's Day"))
|
|
45
43
|
|
holidays/countries/cambodia.py
CHANGED
|
@@ -27,6 +27,7 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
|
|
|
27
27
|
- Based on: https://www.nbc.gov.kh/english/news_and_events/official_holiday.php
|
|
28
28
|
https://www.nbc.gov.kh/news_and_events/official_holiday.php
|
|
29
29
|
https://en.wikipedia.org/wiki/Public_holidays_in_Cambodia
|
|
30
|
+
https://admin.taftac-cambodia.org/public/pdf_file/regulation_1704245695_Z7IALJjE.pdf
|
|
30
31
|
|
|
31
32
|
- Checked with: https://asean.org/wp-content/uploads/2021/12/ASEAN-National-Holidays-2022.pdf
|
|
32
33
|
https://asean.org/wp-content/uploads/2022/12/ASEAN-Public-Holidays-2023.pdf
|
|
@@ -51,6 +52,8 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
|
|
|
51
52
|
country = "KH"
|
|
52
53
|
default_language = "km"
|
|
53
54
|
supported_languages = ("en_US", "km", "th")
|
|
55
|
+
# Available post-Independence from 1993 afterwards
|
|
56
|
+
start_year = 1993
|
|
54
57
|
|
|
55
58
|
def __init__(self, *args, **kwargs):
|
|
56
59
|
InternationalHolidays.__init__(self)
|
|
@@ -59,10 +62,6 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
|
|
|
59
62
|
super().__init__(*args, **kwargs)
|
|
60
63
|
|
|
61
64
|
def _populate_public_holidays(self):
|
|
62
|
-
# Available post-Independence from 1993 afterwards
|
|
63
|
-
if self._year <= 1992:
|
|
64
|
-
return None
|
|
65
|
-
|
|
66
65
|
# Fixed Holidays
|
|
67
66
|
|
|
68
67
|
# ទិវាចូលឆ្នាំសាកល
|
|
@@ -278,6 +277,16 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
|
|
|
278
277
|
self._add_holiday(bon_om_touk, _timedelta(bon_om_touk_date, -1))
|
|
279
278
|
self._add_holiday(bon_om_touk, _timedelta(bon_om_touk_date, +1))
|
|
280
279
|
|
|
280
|
+
# ទិវាសន្តិភាពនៅកម្ពុជា
|
|
281
|
+
# Status: In-Use.
|
|
282
|
+
# Dec 29, added from 2024 onwards.
|
|
283
|
+
# - https://www.khmertimeskh.com/501424903/24-public-holidays-for-2024-peace-day-now-included/
|
|
284
|
+
# - https://www.khmertimeskh.com/501551204/govt-announces-22-public-holidays-for-next-year/
|
|
285
|
+
|
|
286
|
+
if self._year >= 2024:
|
|
287
|
+
# Peace Day in Cambodia.
|
|
288
|
+
self._add_holiday_dec_29(tr("ទិវាសន្តិភាពនៅកម្ពុជា"))
|
|
289
|
+
|
|
281
290
|
|
|
282
291
|
class KH(Cambodia):
|
|
283
292
|
pass
|
holidays/countries/cameroon.py
CHANGED
|
@@ -33,6 +33,8 @@ class Cameroon(
|
|
|
33
33
|
|
|
34
34
|
country = "CM"
|
|
35
35
|
observed_label = "%s (observed)"
|
|
36
|
+
# On 1 January 1960, French Cameroun gained independence from France.
|
|
37
|
+
start_year = 1960
|
|
36
38
|
|
|
37
39
|
def __init__(self, *args, **kwargs):
|
|
38
40
|
ChristianHolidays.__init__(self)
|
|
@@ -43,10 +45,6 @@ class Cameroon(
|
|
|
43
45
|
super().__init__(*args, **kwargs)
|
|
44
46
|
|
|
45
47
|
def _populate_public_holidays(self):
|
|
46
|
-
# On 1 January 1960, French Cameroun gained independence from France.
|
|
47
|
-
if self._year <= 1959:
|
|
48
|
-
return None
|
|
49
|
-
|
|
50
48
|
dts_observed = set()
|
|
51
49
|
|
|
52
50
|
# New Year's Day.
|
holidays/countries/canada.py
CHANGED
|
@@ -37,6 +37,7 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
|
|
|
37
37
|
- http://web2.gov.mb.ca/laws/statutes/ccsm/r120e.php
|
|
38
38
|
- https://www2.gnb.ca/content/gnb/en/departments/elg/local_government/content/governance/content/days_of_rest_act.html
|
|
39
39
|
- https://www.ontario.ca/document/your-guide-employment-standards-act-0/public-holidays
|
|
40
|
+
- https://www.gov.nu.ca/en/print/pdf/node/52266
|
|
40
41
|
- https://www.officeholidays.com/countries/canada/
|
|
41
42
|
- https://www.timeanddate.com/holidays/canada/
|
|
42
43
|
"""
|
|
@@ -62,6 +63,7 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
|
|
|
62
63
|
"YT",
|
|
63
64
|
)
|
|
64
65
|
supported_languages = ("ar", "en_CA", "en_US", "fr", "th")
|
|
66
|
+
start_year = 1867
|
|
65
67
|
|
|
66
68
|
def __init__(self, *args, **kwargs):
|
|
67
69
|
ChristianHolidays.__init__(self)
|
|
@@ -99,9 +101,6 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
|
|
|
99
101
|
self._add_christmas_day(tr("Christmas Day"))
|
|
100
102
|
|
|
101
103
|
def _populate_public_holidays(self):
|
|
102
|
-
if self._year <= 1866:
|
|
103
|
-
return None
|
|
104
|
-
|
|
105
104
|
self._add_statutory_holidays()
|
|
106
105
|
|
|
107
106
|
self._add_observed(self._christmas_day)
|
|
@@ -109,9 +108,6 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
|
|
|
109
108
|
def _populate_government_holidays(self):
|
|
110
109
|
"""Holidays for federally regulated workplaces."""
|
|
111
110
|
|
|
112
|
-
if self._year <= 1866:
|
|
113
|
-
return None
|
|
114
|
-
|
|
115
111
|
self._add_statutory_holidays()
|
|
116
112
|
|
|
117
113
|
if self._year >= 1953:
|
|
@@ -141,9 +137,6 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
|
|
|
141
137
|
)
|
|
142
138
|
|
|
143
139
|
def _populate_optional_holidays(self):
|
|
144
|
-
if self._year <= 1866:
|
|
145
|
-
return None
|
|
146
|
-
|
|
147
140
|
# Christmas Day.
|
|
148
141
|
self._add_observed(
|
|
149
142
|
self._add_christmas_day(tr("Christmas Day")), rule=SAT_SUN_TO_NEXT_MON_TUE
|
|
@@ -361,6 +354,10 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
|
|
|
361
354
|
# Victoria Day.
|
|
362
355
|
self._add_holiday_1st_mon_before_may_24(tr("Victoria Day"))
|
|
363
356
|
|
|
357
|
+
if self._year >= 2020:
|
|
358
|
+
# Nunavut Day.
|
|
359
|
+
self._add_holiday_jul_9(tr("Nunavut Day"))
|
|
360
|
+
|
|
364
361
|
if self._year >= 1900:
|
|
365
362
|
# Civic Holiday.
|
|
366
363
|
self._add_holiday_1st_mon_of_aug(tr("Civic Holiday"))
|
|
@@ -376,8 +373,7 @@ class Canada(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, Stat
|
|
|
376
373
|
self._add_remembrance_day(tr("Remembrance Day"))
|
|
377
374
|
|
|
378
375
|
def _populate_subdiv_nu_optional_holidays(self):
|
|
379
|
-
if self._year
|
|
380
|
-
# Nunavut Day.
|
|
376
|
+
if 2000 <= self._year <= 2019:
|
|
381
377
|
name = tr("Nunavut Day")
|
|
382
378
|
if self._year == 2000:
|
|
383
379
|
self._add_holiday_apr_1(name)
|