holidays 0.86__py3-none-any.whl → 0.88__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/calendars/chinese.py +44 -6
- holidays/calendars/hindu.py +85 -1
- holidays/constants.py +1 -0
- holidays/countries/american_samoa.py +2 -0
- holidays/countries/bangladesh.py +13 -9
- holidays/countries/belarus.py +4 -2
- holidays/countries/brazil.py +27 -1
- holidays/countries/chile.py +2 -3
- holidays/countries/germany.py +75 -74
- holidays/countries/guam.py +2 -0
- holidays/countries/india.py +5 -3
- holidays/countries/macau.py +39 -45
- holidays/countries/malaysia.py +171 -71
- holidays/countries/new_zealand.py +4 -3
- holidays/countries/northern_mariana_islands.py +2 -0
- holidays/countries/puerto_rico.py +4 -2
- holidays/countries/sweden.py +35 -11
- holidays/countries/taiwan.py +6 -5
- holidays/countries/turks_and_caicos_islands.py +13 -3
- holidays/countries/united_states.py +434 -133
- holidays/countries/united_states_minor_outlying_islands.py +2 -0
- holidays/countries/united_states_virgin_islands.py +2 -0
- holidays/countries/uzbekistan.py +12 -1
- holidays/countries/venezuela.py +113 -23
- holidays/financial/__init__.py +1 -0
- holidays/financial/bombay_stock_exchange.py +33 -0
- holidays/financial/national_stock_exchange_of_india.py +1 -1
- holidays/financial/ny_stock_exchange.py +591 -89
- holidays/groups/chinese.py +11 -18
- holidays/groups/hindu.py +24 -0
- holidays/holiday_base.py +2 -1
- holidays/locale/bn/LC_MESSAGES/BD.mo +0 -0
- holidays/locale/de/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/en_IN/LC_MESSAGES/XBOM.mo +0 -0
- holidays/locale/en_TC/LC_MESSAGES/TC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BD.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MY.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/US.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/VE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/XBOM.mo +0 -0
- holidays/locale/es/LC_MESSAGES/VE.mo +0 -0
- holidays/locale/gu/LC_MESSAGES/IN.mo +0 -0
- holidays/locale/gu/LC_MESSAGES/XBOM.mo +0 -0
- holidays/locale/gu/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/hi/LC_MESSAGES/XBOM.mo +0 -0
- holidays/locale/ms_MY/LC_MESSAGES/MY.mo +0 -0
- holidays/locale/pt_BR/LC_MESSAGES/BR.mo +0 -0
- holidays/locale/sv/LC_MESSAGES/SE.mo +0 -0
- holidays/locale/th/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/th/LC_MESSAGES/MY.mo +0 -0
- holidays/locale/th/LC_MESSAGES/SE.mo +0 -0
- holidays/locale/th/LC_MESSAGES/US.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/BR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/DE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/SE.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/VE.mo +0 -0
- holidays/registry.py +1 -0
- holidays/utils.py +62 -1
- holidays/version.py +3 -1
- {holidays-0.86.dist-info → holidays-0.88.dist-info}/METADATA +30 -16
- {holidays-0.86.dist-info → holidays-0.88.dist-info}/RECORD +69 -60
- {holidays-0.86.dist-info → holidays-0.88.dist-info}/licenses/CONTRIBUTORS +6 -0
- {holidays-0.86.dist-info → holidays-0.88.dist-info}/WHEEL +0 -0
- {holidays-0.86.dist-info → holidays-0.88.dist-info}/licenses/LICENSE +0 -0
- {holidays-0.86.dist-info → holidays-0.88.dist-info}/top_level.txt +0 -0
holidays/countries/germany.py
CHANGED
|
@@ -21,25 +21,39 @@ from holidays.holiday_base import HolidayBase
|
|
|
21
21
|
class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
|
|
22
22
|
"""Germany holidays.
|
|
23
23
|
|
|
24
|
-
This class doesn't return any holidays before 1990-10-03.
|
|
25
|
-
|
|
26
|
-
Before that date the current Germany was separated into the "German Democratic
|
|
27
|
-
Republic" and the "Federal Republic of Germany" which both had somewhat
|
|
28
|
-
different holidays. Since this class is called "Germany" it doesn't really
|
|
29
|
-
make sense to include the days from the two former countries.
|
|
30
|
-
|
|
31
|
-
"Mariä Himmelfahrt" is only a holiday in Bavaria (BY) and "Fronleichnam"
|
|
32
|
-
in Saxony (SN) and Thuringia (TH) if municipality is mostly catholic which
|
|
33
|
-
in term depends on census data. It's listed in "CATHOLIC" category for these provinces.
|
|
34
|
-
|
|
35
24
|
References:
|
|
25
|
+
* <https://de.wikipedia.org/wiki/Feiertag_(Deutschland)>
|
|
36
26
|
* <https://en.wikipedia.org/wiki/Public_holidays_in_Germany>
|
|
37
|
-
* [
|
|
27
|
+
* [German Unity Day](https://web.archive.org/web/20251011161644/https://www.gesetze-im-internet.de/einigvtr/art_2.html)
|
|
28
|
+
|
|
29
|
+
Subdivisions Holidays References:
|
|
30
|
+
* [Brandenburg](https://web.archive.org/web/20251002092001/https://bravors.brandenburg.de/gesetze/ftg_2015)
|
|
31
|
+
* [Berlin](https://web.archive.org/web/20250518234750/http://gesetze.berlin.de/bsbe/document/jlr-FeiertGBEV10P1)
|
|
32
|
+
* [Baden-Württemberg](https://web.archive.org/web/20240914215438/https://www.landesrecht-bw.de/bsbw/document/jlr-FeiertGBWpP1)
|
|
33
|
+
* [Bayern](https://web.archive.org/web/20250906201237/https://www.gesetze-bayern.de/Content/Document/BayFTG/true)
|
|
34
|
+
* [Bremen](https://web.archive.org/web/20240430101614/https://www.transparenz.bremen.de/metainformationen/gesetz-ueber-die-sonn-gedenk-und-feiertage-vom-12-november-1954-145882)
|
|
35
|
+
* [Hessen](https://web.archive.org/web/20250421183249/http://www.rv.hessenrecht.hessen.de/bshe/document/jlr-FeiertGHE1952rahmen)
|
|
36
|
+
* [Hamburg](https://web.archive.org/web/20250618110249/https://www.landesrecht-hamburg.de/bsha/document/jlr-FeiertGHAV3P1)
|
|
37
|
+
* [Mecklenburg-Vorpommern](https://web.archive.org/web/20250222090126/https://www.landesrecht-mv.de/bsmv/document/jlr-FTGMVV3P2)
|
|
38
|
+
* [Niedersachsen](https://web.archive.org/web/20250627100126/https://voris.wolterskluwer-online.de/browse/document/b724111b-6c20-3862-b111-589842acacba)
|
|
39
|
+
* [Nordrhein-Westfalen](https://web.archive.org/web/20250717194916/https://recht.nrw.de/lmi/owa/br_bes_detail?bes_id=3367&aufgehoben=N&det_id=144445&anw_nr=2&menu=1&sg=0)
|
|
40
|
+
* [Rheinland-Pfalz](https://web.archive.org/web/20250521153233/http://www.landesrecht.rlp.de/bsrp/document/jlr-FeiertGRPpP2)
|
|
41
|
+
* [Schleswig-Holstein](https://web.archive.org/web/20250812223916/https://www.gesetze-rechtsprechung.sh.juris.de/bssh/document/jlr-FeiertGSH2004V3P2)
|
|
42
|
+
* [Saarland](https://web.archive.org/web/20250124112139/http://recht.saarland.de/bssl/document/jlr-FeiertGSL1976V6P2)
|
|
43
|
+
* [Sachsen](https://web.archive.org/web/20250808020452/https://www.revosax.sachsen.de/vorschrift/3997-SaechsSFG)
|
|
44
|
+
* [Sachsen-Anhalt](https://web.archive.org/web/20250615214949/http://www.landesrecht.sachsen-anhalt.de/bsst/document/jlr-FeiertGSTpP2)
|
|
45
|
+
* [Thüringen](https://web.archive.org/web/20250712163548/http://landesrecht.thueringen.de/bsth/document/jlr-FeiertGTHV5P2)
|
|
46
|
+
|
|
47
|
+
!!! note "Note"
|
|
48
|
+
"Mariä Himmelfahrt" is only a holiday in Bavaria (BY) and "Fronleichnam"
|
|
49
|
+
in Saxony (SN) and Thuringia (TH) if municipality is mostly catholic which
|
|
50
|
+
in term depends on census data. It's listed in "CATHOLIC" category for these provinces.
|
|
38
51
|
"""
|
|
39
52
|
|
|
40
53
|
country = "DE"
|
|
41
54
|
default_language = "de"
|
|
42
|
-
|
|
55
|
+
# Germany reunification was completed on Oct 3, 1990.
|
|
56
|
+
start_year = 1991
|
|
43
57
|
subdivisions = (
|
|
44
58
|
# States.
|
|
45
59
|
"BB", # Brandenburg.
|
|
@@ -90,24 +104,23 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
90
104
|
super().__init__(*args, **kwargs)
|
|
91
105
|
|
|
92
106
|
def _populate_public_holidays(self):
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
self._add_new_years_day(tr("Neujahr"))
|
|
107
|
+
# New Year's Day.
|
|
108
|
+
self._add_new_years_day(tr("Neujahr"))
|
|
96
109
|
|
|
97
|
-
|
|
98
|
-
|
|
110
|
+
# Good Friday.
|
|
111
|
+
self._add_good_friday(tr("Karfreitag"))
|
|
99
112
|
|
|
100
|
-
|
|
101
|
-
|
|
113
|
+
# Easter Monday.
|
|
114
|
+
self._add_easter_monday(tr("Ostermontag"))
|
|
102
115
|
|
|
103
|
-
|
|
104
|
-
|
|
116
|
+
# Labor Day.
|
|
117
|
+
self._add_labor_day(tr("Erster Mai"))
|
|
105
118
|
|
|
106
|
-
|
|
107
|
-
|
|
119
|
+
# Ascension Day.
|
|
120
|
+
self._add_ascension_thursday(tr("Christi Himmelfahrt"))
|
|
108
121
|
|
|
109
|
-
|
|
110
|
-
|
|
122
|
+
# Whit Monday.
|
|
123
|
+
self._add_whit_monday(tr("Pfingstmontag"))
|
|
111
124
|
|
|
112
125
|
# German Unity Day.
|
|
113
126
|
self._add_holiday_oct_3(tr("Tag der Deutschen Einheit"))
|
|
@@ -126,47 +139,43 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
126
139
|
self._populate_subdiv_by_public_holidays()
|
|
127
140
|
|
|
128
141
|
def _populate_subdiv_bb_public_holidays(self):
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
self._add_easter_sunday(tr("Ostersonntag"))
|
|
142
|
+
# Easter Sunday.
|
|
143
|
+
self._add_easter_sunday(tr("Ostersonntag"))
|
|
132
144
|
|
|
133
|
-
|
|
134
|
-
|
|
145
|
+
# Whit Sunday.
|
|
146
|
+
self._add_whit_sunday(tr("Pfingstsonntag"))
|
|
135
147
|
|
|
136
148
|
# Reformation Day.
|
|
137
149
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
138
150
|
|
|
139
151
|
def _populate_subdiv_be_public_holidays(self):
|
|
140
152
|
if self._year >= 2019:
|
|
141
|
-
#
|
|
142
|
-
self._add_womens_day(tr("
|
|
153
|
+
# Women's Day.
|
|
154
|
+
self._add_womens_day(tr("Frauentag"))
|
|
143
155
|
|
|
144
156
|
def _populate_subdiv_bw_public_holidays(self):
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
self._add_epiphany_day(tr("Heilige Drei Könige"))
|
|
157
|
+
# Epiphany.
|
|
158
|
+
self._add_epiphany_day(tr("Heilige Drei Könige"))
|
|
148
159
|
|
|
149
|
-
|
|
150
|
-
|
|
160
|
+
# Corpus Christi.
|
|
161
|
+
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
151
162
|
|
|
152
163
|
# All Saints' Day.
|
|
153
164
|
self._add_all_saints_day(tr("Allerheiligen"))
|
|
154
165
|
|
|
155
166
|
def _populate_subdiv_by_public_holidays(self):
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
self._add_epiphany_day(tr("Heilige Drei Könige"))
|
|
167
|
+
# Epiphany.
|
|
168
|
+
self._add_epiphany_day(tr("Heilige Drei Könige"))
|
|
159
169
|
|
|
160
|
-
|
|
161
|
-
|
|
170
|
+
# Corpus Christi.
|
|
171
|
+
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
162
172
|
|
|
163
173
|
# All Saints' Day.
|
|
164
174
|
self._add_all_saints_day(tr("Allerheiligen"))
|
|
165
175
|
|
|
166
176
|
def _populate_subdiv_by_catholic_holidays(self):
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
|
|
177
|
+
# Assumption Day.
|
|
178
|
+
self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
|
|
170
179
|
|
|
171
180
|
def _populate_subdiv_hb_public_holidays(self):
|
|
172
181
|
if self._year >= 2018:
|
|
@@ -174,9 +183,8 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
174
183
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
175
184
|
|
|
176
185
|
def _populate_subdiv_he_public_holidays(self):
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
186
|
+
# Corpus Christi.
|
|
187
|
+
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
180
188
|
|
|
181
189
|
def _populate_subdiv_hh_public_holidays(self):
|
|
182
190
|
if self._year >= 2018:
|
|
@@ -185,8 +193,8 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
185
193
|
|
|
186
194
|
def _populate_subdiv_mv_public_holidays(self):
|
|
187
195
|
if self._year >= 2023:
|
|
188
|
-
#
|
|
189
|
-
self._add_womens_day(tr("
|
|
196
|
+
# Women's Day.
|
|
197
|
+
self._add_womens_day(tr("Frauentag"))
|
|
190
198
|
|
|
191
199
|
# Reformation Day.
|
|
192
200
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
@@ -197,17 +205,15 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
197
205
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
198
206
|
|
|
199
207
|
def _populate_subdiv_nw_public_holidays(self):
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
208
|
+
# Corpus Christi.
|
|
209
|
+
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
203
210
|
|
|
204
211
|
# All Saints' Day.
|
|
205
212
|
self._add_all_saints_day(tr("Allerheiligen"))
|
|
206
213
|
|
|
207
214
|
def _populate_subdiv_rp_public_holidays(self):
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
215
|
+
# Corpus Christi.
|
|
216
|
+
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
211
217
|
|
|
212
218
|
# All Saints' Day.
|
|
213
219
|
self._add_all_saints_day(tr("Allerheiligen"))
|
|
@@ -218,12 +224,11 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
218
224
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
219
225
|
|
|
220
226
|
def _populate_subdiv_sl_public_holidays(self):
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
227
|
+
# Corpus Christi.
|
|
228
|
+
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
224
229
|
|
|
225
|
-
|
|
226
|
-
|
|
230
|
+
# Assumption Day.
|
|
231
|
+
self._add_assumption_of_mary_day(tr("Mariä Himmelfahrt"))
|
|
227
232
|
|
|
228
233
|
# All Saints' Day.
|
|
229
234
|
self._add_all_saints_day(tr("Allerheiligen"))
|
|
@@ -237,14 +242,12 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
237
242
|
self._add_holiday_1st_wed_before_nov_22(tr("Buß- und Bettag"))
|
|
238
243
|
|
|
239
244
|
def _populate_subdiv_sn_catholic_holidays(self):
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
245
|
+
# Corpus Christi.
|
|
246
|
+
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
243
247
|
|
|
244
248
|
def _populate_subdiv_st_public_holidays(self):
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
self._add_epiphany_day(tr("Heilige Drei Könige"))
|
|
249
|
+
# Epiphany.
|
|
250
|
+
self._add_epiphany_day(tr("Heilige Drei Könige"))
|
|
248
251
|
|
|
249
252
|
# Reformation Day.
|
|
250
253
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
@@ -258,16 +261,14 @@ class Germany(HolidayBase, ChristianHolidays, InternationalHolidays, StaticHolid
|
|
|
258
261
|
self._add_holiday_oct_31(tr("Reformationstag"))
|
|
259
262
|
|
|
260
263
|
def _populate_subdiv_th_catholic_holidays(self):
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
264
|
+
# Corpus Christi.
|
|
265
|
+
self._add_corpus_christi_day(tr("Fronleichnam"))
|
|
264
266
|
|
|
265
267
|
def _populate_subdiv_augsburg_public_holidays(self):
|
|
266
268
|
self._populate_subdiv_by_public_holidays()
|
|
267
269
|
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
self._add_holiday_aug_8(tr("Augsburger Hohes Friedensfest"))
|
|
270
|
+
# Augsburg Peace Festival.
|
|
271
|
+
self._add_holiday_aug_8(tr("Augsburger Hohes Friedensfest"))
|
|
271
272
|
|
|
272
273
|
|
|
273
274
|
class DE(Germany):
|
holidays/countries/guam.py
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
# Website: https://github.com/vacanza/holidays
|
|
11
11
|
# License: MIT (see LICENSE file)
|
|
12
12
|
|
|
13
|
+
from holidays.constants import PUBLIC, UNOFFICIAL
|
|
13
14
|
from holidays.countries.united_states import UnitedStates
|
|
14
15
|
from holidays.mixins.child_entity import ChildEntity
|
|
15
16
|
|
|
@@ -25,6 +26,7 @@ class Guam(ChildEntity, UnitedStates):
|
|
|
25
26
|
parent_entity = UnitedStates
|
|
26
27
|
# Became a U.S. Territory on April 11th, 1899.
|
|
27
28
|
start_year = 1900
|
|
29
|
+
supported_categories = (PUBLIC, UNOFFICIAL)
|
|
28
30
|
|
|
29
31
|
|
|
30
32
|
class HolidaysGU(Guam):
|
holidays/countries/india.py
CHANGED
|
@@ -37,6 +37,8 @@ class India(
|
|
|
37
37
|
* <https://web.archive.org/web/20250413193633/https://www.calendarlabs.com/holidays/india/2021>
|
|
38
38
|
* <https://web.archive.org/web/20231118175007/http://slusi.dacnet.nic.in/watershedatlas/list_of_state_abbreviation.htm>
|
|
39
39
|
* <https://web.archive.org/web/20231008063930/https://vahan.parivahan.gov.in/vahan4dashboard/>
|
|
40
|
+
* Gujarat:
|
|
41
|
+
* <https://gad.gujarat.gov.in/personnel/Images/pdf/general_holidays_2026_guj.pdf>
|
|
40
42
|
* Tamil Nadu:
|
|
41
43
|
* [Tamil Monthly Calendar](https://web.archive.org/web/20231228103352/https://www.tamildailycalendar.com/tamil_monthly_calendar.php)
|
|
42
44
|
* [Tamil Calendar](https://web.archive.org/web/20250429125140/https://www.prokerala.com/general/calendar/tamilcalendar.php)
|
|
@@ -144,7 +146,7 @@ class India(
|
|
|
144
146
|
"West Bengal": "WB",
|
|
145
147
|
}
|
|
146
148
|
supported_categories = (OPTIONAL, PUBLIC)
|
|
147
|
-
supported_languages = ("en_IN", "en_US", "hi")
|
|
149
|
+
supported_languages = ("en_IN", "en_US", "gu", "hi")
|
|
148
150
|
_deprecated_subdivisions = (
|
|
149
151
|
"DD", # Daman and Diu.
|
|
150
152
|
"OR", # Orissa.
|
|
@@ -456,7 +458,7 @@ class India(
|
|
|
456
458
|
# Dr. B. R. Ambedkar Jayanti.
|
|
457
459
|
self._add_holiday_apr_14(tr("Dr. B. R. Ambedkar's Jayanti"))
|
|
458
460
|
# Maharana Pratap Jayanti.
|
|
459
|
-
self.
|
|
461
|
+
self._add_maharana_pratap_jayanti(tr("Maharana Pratap Jayanti"))
|
|
460
462
|
|
|
461
463
|
# Sikkim.
|
|
462
464
|
def _populate_subdiv_sk_public_holidays(self):
|
|
@@ -485,7 +487,7 @@ class India(
|
|
|
485
487
|
# Telangana Formation Day.
|
|
486
488
|
self._add_holiday_jun_2(tr("Telangana Formation Day"))
|
|
487
489
|
# Bathukamma Festival.
|
|
488
|
-
self.
|
|
490
|
+
self._add_bathukamma(tr("Bathukamma Festival"))
|
|
489
491
|
# Ugadi.
|
|
490
492
|
self._add_gudi_padwa(tr("Ugadi"))
|
|
491
493
|
|
holidays/countries/macau.py
CHANGED
|
@@ -24,6 +24,8 @@ from holidays.observed_holiday_base import (
|
|
|
24
24
|
ObservedHolidayBase,
|
|
25
25
|
SUN_TO_NEXT_WORKDAY,
|
|
26
26
|
SAT_SUN_TO_NEXT_WORKDAY,
|
|
27
|
+
SAT_TO_NONE,
|
|
28
|
+
SUN_TO_NONE,
|
|
27
29
|
)
|
|
28
30
|
|
|
29
31
|
|
|
@@ -92,19 +94,7 @@ class Macau(
|
|
|
92
94
|
kwargs.setdefault("observed_since", 2011)
|
|
93
95
|
super().__init__(*args, **kwargs)
|
|
94
96
|
|
|
95
|
-
def
|
|
96
|
-
"""Macau Mandatory (Statutory) Holidays.
|
|
97
|
-
|
|
98
|
-
Decreto-Lei n.º 101/84/M - Earliest Available Version Online.
|
|
99
|
-
Decreto-Lei n.º 24/89/M - Added Ching Ming Festival.
|
|
100
|
-
Lei n.º 8/2000 - Removed Day of Portugal
|
|
101
|
-
- Added Macao S.A.R. Establishment Day.
|
|
102
|
-
- Moved Mid-Autumn to Day following Mid-Autumn to match Public Holidays.
|
|
103
|
-
Lei n.º 7/2008 - Consolidated with other laws, reaffirming 2000 Amendment list.
|
|
104
|
-
"""
|
|
105
|
-
if self._year <= 1984:
|
|
106
|
-
return None
|
|
107
|
-
|
|
97
|
+
def _populate_common(self):
|
|
108
98
|
# New Year's Day.
|
|
109
99
|
self._add_new_years_day(tr("元旦"))
|
|
110
100
|
|
|
@@ -126,6 +116,21 @@ class Macau(
|
|
|
126
116
|
# National Day of the People's Republic of China.
|
|
127
117
|
self._add_holiday_oct_1(tr("中華人民共和國國慶日"))
|
|
128
118
|
|
|
119
|
+
def _populate_public_holidays(self):
|
|
120
|
+
"""Macau Mandatory (Statutory) Holidays.
|
|
121
|
+
|
|
122
|
+
Decreto-Lei n.º 101/84/M - Earliest Available Version Online.
|
|
123
|
+
Decreto-Lei n.º 24/89/M - Added Ching Ming Festival.
|
|
124
|
+
Lei n.º 8/2000 - Removed Day of Portugal
|
|
125
|
+
- Added Macao S.A.R. Establishment Day.
|
|
126
|
+
- Moved Mid-Autumn to Day following Mid-Autumn to match Public Holidays.
|
|
127
|
+
Lei n.º 7/2008 - Consolidated with other laws, reaffirming 2000 Amendment list.
|
|
128
|
+
"""
|
|
129
|
+
if self._year <= 1984:
|
|
130
|
+
return None
|
|
131
|
+
|
|
132
|
+
self._populate_common()
|
|
133
|
+
|
|
129
134
|
# Decreto-Lei n.º 24/89/M - Adds Ching Ming as a Mandatory Holiday.
|
|
130
135
|
if self._year >= 1989:
|
|
131
136
|
# Tomb-Sweeping Day.
|
|
@@ -150,17 +155,7 @@ class Macau(
|
|
|
150
155
|
|
|
151
156
|
def _populate_optional_holidays(self):
|
|
152
157
|
"""Macau General Holidays."""
|
|
153
|
-
|
|
154
|
-
self._add_new_years_day(tr("元旦"))
|
|
155
|
-
|
|
156
|
-
# Chinese New Year's Day.
|
|
157
|
-
self._add_chinese_new_years_day(tr("農曆正月初一"))
|
|
158
|
-
|
|
159
|
-
# The second day of Chinese New Year.
|
|
160
|
-
self._add_chinese_new_years_day_two(tr("農曆正月初二"))
|
|
161
|
-
|
|
162
|
-
# The third day of Chinese New Year.
|
|
163
|
-
self._add_chinese_new_years_day_three(tr("農曆正月初三"))
|
|
158
|
+
self._populate_common()
|
|
164
159
|
|
|
165
160
|
# Tomb-Sweeping Day.
|
|
166
161
|
self._add_qingming_festival(tr("清明節"))
|
|
@@ -183,21 +178,12 @@ class Macau(
|
|
|
183
178
|
else tr("聖周星期六")
|
|
184
179
|
)
|
|
185
180
|
|
|
186
|
-
# Labor Day.
|
|
187
|
-
self._add_labor_day(tr("勞動節"))
|
|
188
|
-
|
|
189
181
|
# Dragon Boat Festival.
|
|
190
182
|
self._add_dragon_boat_festival(tr("端午節"))
|
|
191
183
|
|
|
192
|
-
# Double Ninth Festival.
|
|
193
|
-
self._add_double_ninth_festival(tr("重陽節"))
|
|
194
|
-
|
|
195
184
|
# The Day following Mid-Autumn Festival.
|
|
196
185
|
self._add_mid_autumn_festival_day_two(tr("中秋節翌日"))
|
|
197
186
|
|
|
198
|
-
# National Day of the People's Republic of China.
|
|
199
|
-
self._add_holiday_oct_1(tr("中華人民共和國國慶日"))
|
|
200
|
-
|
|
201
187
|
# All Soul's Day.
|
|
202
188
|
self._add_all_souls_day(tr("追思節"))
|
|
203
189
|
|
|
@@ -293,18 +279,12 @@ class Macau(
|
|
|
293
279
|
# New Year's Day.
|
|
294
280
|
dts_observed.add(self._add_new_years_day(tr("元旦")))
|
|
295
281
|
|
|
296
|
-
if
|
|
282
|
+
if not (
|
|
283
|
+
self._is_sunday(self._chinese_new_year) or self._is_monday(self._chinese_new_year)
|
|
284
|
+
):
|
|
297
285
|
# Chinese New Year's Eve.
|
|
298
286
|
self._add_chinese_new_years_eve(begin_time_label % self.tr("農曆除夕"))
|
|
299
287
|
|
|
300
|
-
if self._year in {2006, 2007, 2010, 2013, 2014, 2017, 2018}:
|
|
301
|
-
# The fourth day of Chinese New Year.
|
|
302
|
-
self._add_chinese_new_years_day_four(tr("農曆正月初四"))
|
|
303
|
-
|
|
304
|
-
if self._year in {2014, 2015, 2017, 2018}:
|
|
305
|
-
# The fifth day of Chinese New Year.
|
|
306
|
-
self._add_chinese_new_years_day_five(tr("農曆正月初五"))
|
|
307
|
-
|
|
308
288
|
if self._year >= 2019:
|
|
309
289
|
# Chinese New Year's Day.
|
|
310
290
|
dts_observed.add(self._add_chinese_new_years_day(tr("農曆正月初一")))
|
|
@@ -314,6 +294,17 @@ class Macau(
|
|
|
314
294
|
|
|
315
295
|
# The third day of Chinese New Year.
|
|
316
296
|
dts_observed.add(self._add_chinese_new_years_day_three(tr("農曆正月初三")))
|
|
297
|
+
else:
|
|
298
|
+
if self._is_friday(self._chinese_new_year) or self._is_weekend(self._chinese_new_year):
|
|
299
|
+
# The fourth day of Chinese New Year.
|
|
300
|
+
self._add_chinese_new_years_day_four(tr("農曆正月初四"))
|
|
301
|
+
if self._year >= 2012 and (
|
|
302
|
+
self._is_thursday(self._chinese_new_year)
|
|
303
|
+
or self._is_friday(self._chinese_new_year)
|
|
304
|
+
or self._is_saturday(self._chinese_new_year)
|
|
305
|
+
):
|
|
306
|
+
# The fifth day of Chinese New Year.
|
|
307
|
+
self._add_chinese_new_years_day_five(tr("農曆正月初五"))
|
|
317
308
|
|
|
318
309
|
# The Day before Easter.
|
|
319
310
|
dts_observed.add(self._add_holy_saturday(tr("復活節前日")))
|
|
@@ -361,9 +352,12 @@ class Macau(
|
|
|
361
352
|
dts_observed.add(self._add_christmas_day(tr("聖誕節")))
|
|
362
353
|
|
|
363
354
|
# 2012's Full-Day New Year's Eve is declared discretely.
|
|
364
|
-
if self._year >= 2007 and self._year
|
|
365
|
-
|
|
366
|
-
|
|
355
|
+
if self._year >= 2007 and self._year != 2012:
|
|
356
|
+
self._move_holiday(
|
|
357
|
+
# New Year's Eve.
|
|
358
|
+
self._add_new_years_eve(begin_time_label % self.tr("除夕")),
|
|
359
|
+
rule=SAT_TO_NONE + SUN_TO_NONE,
|
|
360
|
+
)
|
|
367
361
|
|
|
368
362
|
if self.observed:
|
|
369
363
|
self.observed_label = (
|