holidays 0.79__py3-none-any.whl → 0.81__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 +39 -1
- holidays/calendars/hindu.py +1 -0
- holidays/constants.py +0 -1
- holidays/countries/__init__.py +13 -0
- holidays/countries/argentina.py +4 -0
- holidays/countries/australia.py +191 -295
- holidays/countries/bosnia_and_herzegovina.py +5 -1
- holidays/countries/burkina_faso.py +5 -0
- holidays/countries/burundi.py +95 -40
- holidays/countries/cameroon.py +5 -0
- holidays/countries/canada.py +7 -0
- holidays/countries/chad.py +5 -0
- holidays/countries/china.py +4 -0
- holidays/countries/christmas_island.py +6 -0
- holidays/countries/comoros.py +121 -0
- holidays/countries/eritrea.py +104 -0
- holidays/countries/gabon.py +2 -0
- holidays/countries/georgia.py +9 -7
- holidays/countries/guinea_bissau.py +0 -4
- holidays/countries/hongkong.py +5 -1
- holidays/countries/kyrgyzstan.py +2 -0
- holidays/countries/macau.py +74 -63
- holidays/countries/maldives.py +2 -0
- holidays/countries/mauritania.py +2 -0
- holidays/countries/mongolia.py +2 -0
- holidays/countries/nigeria.py +198 -27
- holidays/countries/philippines.py +11 -2
- holidays/countries/rwanda.py +162 -0
- holidays/countries/saint_helena_ascension_and_tristan_da_cunha.py +197 -0
- holidays/countries/sierra_leone.py +1 -1
- holidays/countries/singapore.py +4 -0
- holidays/countries/somalia.py +79 -0
- holidays/countries/south_korea.py +4 -0
- holidays/countries/south_sudan.py +133 -0
- holidays/countries/spain.py +26 -0
- holidays/countries/sudan.py +115 -0
- holidays/countries/taiwan.py +5 -1
- holidays/countries/tajikistan.py +116 -0
- holidays/countries/tanzania.py +291 -147
- holidays/countries/turkmenistan.py +6 -0
- holidays/countries/uganda.py +101 -0
- holidays/countries/vietnam.py +4 -0
- holidays/financial/__init__.py +5 -0
- holidays/financial/national_stock_exchange_of_india.py +169 -0
- holidays/groups/chinese.py +3 -15
- holidays/groups/eastern.py +1 -3
- holidays/groups/islamic.py +10 -0
- holidays/locale/ar_SD/LC_MESSAGES/SD.mo +0 -0
- holidays/locale/bs/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/en_GB/LC_MESSAGES/SH.mo +0 -0
- holidays/locale/en_HK/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/en_IN/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/en_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/en_NG/LC_MESSAGES/NG.mo +0 -0
- holidays/locale/en_PH/LC_MESSAGES/PH.mo +0 -0
- holidays/locale/en_SG/LC_MESSAGES/SG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/GW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KR.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/PH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/RW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SD.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SG.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/SH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TJ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/TZ.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/VN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/es/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/es/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/fil/LC_MESSAGES/PH.mo +0 -0
- holidays/locale/fr/LC_MESSAGES/RW.mo +0 -0
- holidays/locale/fr_BI/LC_MESSAGES/BI.mo +0 -0
- holidays/locale/hi/LC_MESSAGES/XNSE.mo +0 -0
- holidays/locale/ka/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/ko/LC_MESSAGES/KR.mo +0 -0
- holidays/locale/mn/LC_MESSAGES/MN.mo +0 -0
- holidays/locale/pt_GW/LC_MESSAGES/GW.mo +0 -0
- holidays/locale/pt_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/ru/LC_MESSAGES/TJ.mo +0 -0
- holidays/locale/rw/LC_MESSAGES/RW.mo +0 -0
- holidays/locale/sr/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/sw/LC_MESSAGES/TZ.mo +0 -0
- holidays/locale/tg/LC_MESSAGES/TJ.mo +0 -0
- holidays/locale/th/LC_MESSAGES/CN.mo +0 -0
- holidays/locale/th/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/th/LC_MESSAGES/KR.mo +0 -0
- holidays/locale/th/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/th/LC_MESSAGES/PH.mo +0 -0
- holidays/locale/th/LC_MESSAGES/SG.mo +0 -0
- holidays/locale/th/LC_MESSAGES/TW.mo +0 -0
- holidays/locale/th/LC_MESSAGES/VN.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AR.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/BA.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/ES.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/GE.mo +0 -0
- holidays/locale/vi/LC_MESSAGES/VN.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/CN.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/zh_CN/LC_MESSAGES/TW.mo +0 -0
- holidays/locale/zh_HK/LC_MESSAGES/HK.mo +0 -0
- holidays/locale/zh_MO/LC_MESSAGES/MO.mo +0 -0
- holidays/locale/zh_TW/LC_MESSAGES/CN.mo +0 -0
- holidays/locale/zh_TW/LC_MESSAGES/TW.mo +0 -0
- holidays/observed_holiday_base.py +1 -1
- holidays/registry.py +39 -14
- holidays/version.py +1 -1
- {holidays-0.79.dist-info → holidays-0.81.dist-info}/METADATA +76 -7
- {holidays-0.79.dist-info → holidays-0.81.dist-info}/RECORD +124 -97
- {holidays-0.79.dist-info → holidays-0.81.dist-info}/WHEEL +0 -0
- {holidays-0.79.dist-info → holidays-0.81.dist-info}/licenses/CONTRIBUTORS +0 -0
- {holidays-0.79.dist-info → holidays-0.81.dist-info}/licenses/LICENSE +0 -0
- {holidays-0.79.dist-info → holidays-0.81.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# holidays
|
|
2
|
+
# --------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
|
+
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
|
+
# Website: https://github.com/vacanza/holidays
|
|
11
|
+
# License: MIT (see LICENSE file)
|
|
12
|
+
|
|
13
|
+
from datetime import date
|
|
14
|
+
from gettext import gettext as tr
|
|
15
|
+
|
|
16
|
+
from holidays.calendars import _CustomIslamicHolidays
|
|
17
|
+
from holidays.calendars.gregorian import MAR, JUN, JUL, AUG
|
|
18
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
19
|
+
from holidays.observed_holiday_base import (
|
|
20
|
+
ObservedHolidayBase,
|
|
21
|
+
SAT_TO_NEXT_WORKDAY,
|
|
22
|
+
SAT_SUN_TO_NEXT_WORKDAY,
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class Rwanda(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
27
|
+
"""Rwanda holidays.
|
|
28
|
+
|
|
29
|
+
References:
|
|
30
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Rwanda>
|
|
31
|
+
* [Presidential Order N° 06/01 of 16/02/2011](https://web.archive.org/web/20250601161219/https://archive.gazettes.africa/archive/rw/2011/rw-government-gazette-dated-2011-03-07-no-10.pdf)
|
|
32
|
+
* [Presidential Order N° 42/03 of 30/06/2015](https://web.archive.org/web/20180417062635/http://www.igihe.com/IMG/pdf/iteka_rya_perezida_rigena_iminsi_y_ikiruhuko_rusange.pdf)
|
|
33
|
+
* [Presidential Order N° 54/01 of 24/02/2017](https://web.archive.org/web/20220626143357/https://www.ngoma.gov.rw/index.php?eID=dumpFile&t=f&f=44336&token=fc82c76109af7950f8895d40ddd3e15bd8c57e8c)
|
|
34
|
+
* [Presidential Order N° 62/01 of 19/10/2022](https://web.archive.org/web/20250815032533/https://mifotra.prod.risa.rw/index.php?eID=dumpFile&t=f&f=85230&token=bcf0bf166638c11f4bf3d2f8c629052db26d38b6)
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
country = "RW"
|
|
38
|
+
default_language = "rw"
|
|
39
|
+
# %s (estimated).
|
|
40
|
+
estimated_label = tr("%s (yagereranijwe)")
|
|
41
|
+
# %s (observed).
|
|
42
|
+
observed_label = tr("%s (yizihijwe)")
|
|
43
|
+
# %s (observed, estimated).
|
|
44
|
+
observed_estimated_label = tr("%s (yizihijwe, yagereranijwe)")
|
|
45
|
+
supported_languages = ("en_US", "fr", "rw")
|
|
46
|
+
# Presidential Order N° 06/01 of 16/02/2011.
|
|
47
|
+
start_year = 2012
|
|
48
|
+
|
|
49
|
+
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
50
|
+
ChristianHolidays.__init__(self)
|
|
51
|
+
InternationalHolidays.__init__(self)
|
|
52
|
+
IslamicHolidays.__init__(
|
|
53
|
+
self, cls=RwandaIslamicHolidays, show_estimated=islamic_show_estimated
|
|
54
|
+
)
|
|
55
|
+
kwargs.setdefault("observed_since", 2017)
|
|
56
|
+
super().__init__(*args, **kwargs)
|
|
57
|
+
|
|
58
|
+
def _populate_observed(self, dts: set[date], multiple: bool = False) -> None:
|
|
59
|
+
"""
|
|
60
|
+
Applies `SAT_TO_NEXT_WORKDAY` instead of `SAT_SUN_TO_NEXT_WORKDAY`
|
|
61
|
+
observed_rule for Day after New Year's Day and Boxing Day.
|
|
62
|
+
"""
|
|
63
|
+
special_cases = {
|
|
64
|
+
# Day after New Year's Day.
|
|
65
|
+
self.tr("Umunsi ukurikira Ubunani"),
|
|
66
|
+
# Boxing Day.
|
|
67
|
+
self.tr("Umunsi ukurikira Noheli"),
|
|
68
|
+
}
|
|
69
|
+
for dt in sorted(dts):
|
|
70
|
+
for name in self.get_list(dt):
|
|
71
|
+
self._add_observed(
|
|
72
|
+
dt,
|
|
73
|
+
name,
|
|
74
|
+
SAT_TO_NEXT_WORKDAY if name in special_cases else SAT_SUN_TO_NEXT_WORKDAY,
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
def _populate_public_holidays(self):
|
|
78
|
+
dts_observed = set()
|
|
79
|
+
|
|
80
|
+
# New Year's Day.
|
|
81
|
+
dt = self._add_new_years_day(tr("Ubunani"))
|
|
82
|
+
if self._year >= 2018:
|
|
83
|
+
dts_observed.add(dt)
|
|
84
|
+
|
|
85
|
+
# Added via Presidential Order N° 42/03 of 30/06/2015.
|
|
86
|
+
if self._year >= 2016:
|
|
87
|
+
# Day after New Year's Day.
|
|
88
|
+
dts_observed.add(self._add_new_years_day_two(tr("Umunsi ukurikira Ubunani")))
|
|
89
|
+
|
|
90
|
+
# National Heroes' Day.
|
|
91
|
+
dts_observed.add(self._add_holiday_feb_1(tr("Umunsi w'Intwari")))
|
|
92
|
+
|
|
93
|
+
# Memorial Day of Genocide perpetrated against the Tutsi in 1994.
|
|
94
|
+
self._add_holiday_apr_7(tr("Umunsi wo Kwibuka Jenoside yakorewe Abatutsi mu 1994"))
|
|
95
|
+
|
|
96
|
+
# Good Friday.
|
|
97
|
+
self._add_good_friday(tr("Umunsi wa Gatanu Mutagatifu"))
|
|
98
|
+
|
|
99
|
+
# Added via Presidential Order N° 54/01 of 24/02/2017.
|
|
100
|
+
if self._year >= 2017:
|
|
101
|
+
# Easter Monday.
|
|
102
|
+
self._add_easter_monday(tr("Ku wa mbere wa Pasika"))
|
|
103
|
+
|
|
104
|
+
# Labor Day.
|
|
105
|
+
dts_observed.add(self._add_labor_day(tr("Umunsi Mukuru w'Umurimo")))
|
|
106
|
+
|
|
107
|
+
# Independence Day.
|
|
108
|
+
dts_observed.add(self._add_holiday_jul_1(tr("Umunsi w'Ubwigenge")))
|
|
109
|
+
|
|
110
|
+
# Liberation Day.
|
|
111
|
+
dts_observed.add(self._add_holiday_jul_4(tr("Umunsi wo Kwibohora")))
|
|
112
|
+
|
|
113
|
+
# Added via Presidential Order N° 42/03 of 30/06/2015.
|
|
114
|
+
if self._year >= 2015:
|
|
115
|
+
# Umuganura Day.
|
|
116
|
+
self._add_holiday_1st_fri_of_aug(tr("Umunsi w'Umuganura"))
|
|
117
|
+
|
|
118
|
+
# Assumption Day.
|
|
119
|
+
dts_observed.add(self._add_assumption_of_mary_day(tr("Ijyanwa mu Ijuru rya Bikiramariya")))
|
|
120
|
+
|
|
121
|
+
# Christmas Day.
|
|
122
|
+
dts_observed.add(self._add_christmas_day(tr("Noheli")))
|
|
123
|
+
|
|
124
|
+
# Boxing Day.
|
|
125
|
+
dts_observed.add(self._add_christmas_day_two(tr("Umunsi ukurikira Noheli")))
|
|
126
|
+
|
|
127
|
+
# Eid al-Fitr.
|
|
128
|
+
dts_observed.update(self._add_eid_al_fitr_day(tr("Eid El Fitr")))
|
|
129
|
+
|
|
130
|
+
# Added via Presidential Order N° 42/03 of 30/06/2015.
|
|
131
|
+
if self._year >= 2015:
|
|
132
|
+
# Eid al-Adha.
|
|
133
|
+
dts_observed.update(self._add_eid_al_adha_day(tr("Eid al-Adha")))
|
|
134
|
+
|
|
135
|
+
if self.observed:
|
|
136
|
+
self._populate_observed(dts_observed)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
class RW(Rwanda):
|
|
140
|
+
pass
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
class RWA(Rwanda):
|
|
144
|
+
pass
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
class RwandaIslamicHolidays(_CustomIslamicHolidays):
|
|
148
|
+
EID_AL_ADHA_DATES_CONFIRMED_YEARS = (2018, 2025)
|
|
149
|
+
EID_AL_ADHA_DATES = {
|
|
150
|
+
2018: (AUG, 22),
|
|
151
|
+
2019: (AUG, 12),
|
|
152
|
+
2022: (JUL, 11),
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
EID_AL_FITR_DATES_CONFIRMED_YEARS = (2012, 2025)
|
|
156
|
+
EID_AL_FITR_DATES = {
|
|
157
|
+
2014: (JUL, 29),
|
|
158
|
+
2015: (JUL, 18),
|
|
159
|
+
2016: (JUL, 7),
|
|
160
|
+
2017: (JUN, 26),
|
|
161
|
+
2025: (MAR, 31),
|
|
162
|
+
}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# holidays
|
|
2
|
+
# --------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
|
+
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
|
+
# Website: https://github.com/vacanza/holidays
|
|
11
|
+
# License: MIT (see LICENSE file)
|
|
12
|
+
|
|
13
|
+
from gettext import gettext as tr
|
|
14
|
+
|
|
15
|
+
from holidays.calendars.gregorian import JAN, FEB, APR, MAY, JUN, SEP
|
|
16
|
+
from holidays.constants import GOVERNMENT, PUBLIC
|
|
17
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
18
|
+
from holidays.observed_holiday_base import (
|
|
19
|
+
ObservedHolidayBase,
|
|
20
|
+
SAT_TO_PREV_FRI,
|
|
21
|
+
SUN_TO_NEXT_MON,
|
|
22
|
+
SAT_SUN_TO_NEXT_MON,
|
|
23
|
+
SAT_SUN_TO_NEXT_MON_TUE,
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class SaintHelenaAscensionAndTristanDaCunha(
|
|
28
|
+
ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays
|
|
29
|
+
):
|
|
30
|
+
"""Saint Helena, Ascension and Tristan da Cunha holidays.
|
|
31
|
+
|
|
32
|
+
References:
|
|
33
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Saint_Helena,_Ascension_and_Tristan_da_Cunha>
|
|
34
|
+
|
|
35
|
+
Saint Helena:
|
|
36
|
+
* <https://web.archive.org/web/20250810194916/https://sainthelenaisland.info/holidays.htm>
|
|
37
|
+
* [Public Holidays Ordinance](https://web.archive.org/web/20231129081100/https://www.sainthelena.gov.sh/wp-content/uploads/2013/01/Public-Holidays-Ordinance.pdf)
|
|
38
|
+
* [2015](https://web.archive.org/web/20241219152350/https://www.sainthelena.gov.sh/wp-content/uploads/2012/08/Public-Holidays-2015.pdf)
|
|
39
|
+
* [2020](https://web.archive.org/web/20250831203105/https://www.sainthelena.gov.sh/wp-content/uploads/2019/11/Public-Holidays-2020.pdf)
|
|
40
|
+
* [2021](https://web.archive.org/web/20240626101426/https://www.sainthelena.gov.sh/wp-content/uploads/2020/08/200824_Public-Holidays-2021.pdf)
|
|
41
|
+
* [2022](https://web.archive.org/web/20230922215102/https://www.sainthelena.gov.sh/wp-content/uploads/2021/11/PUBLIC-HOLIDAYS-2022.pdf)
|
|
42
|
+
* [Saint Helena Day 2023](https://web.archive.org/web/20250519085755/https://www.sainthelena.gov.sh/wp-content/uploads/2022/09/EX-GAZ-100-Proclamation-St-Helena-Day-2023.pdf)
|
|
43
|
+
* [2024](https://web.archive.org/web/20250614201000/https://www.sainthelena.gov.sh/2023/news/public-and-government-holidays-2024/)
|
|
44
|
+
* [2025](https://web.archive.org/web/20241005191212/https://www.sainthelena.gov.sh/wp-content/uploads/2024/08/Public-Notice-Public-Holidays-2025.pdf)
|
|
45
|
+
* [2026](https://web.archive.org/web/20250831200128/https://www.sainthelena.gov.sh/wp-content/uploads/2025/08/Public-Notice-Public-Holidays-2026.pdf)
|
|
46
|
+
|
|
47
|
+
Ascension:
|
|
48
|
+
* [Public Holidays Ordinance](https://web.archive.org/web/20240610184146/https://www.sainthelena.gov.sh/wp-content/uploads/2017/12/Public-Holidays-Asc-Ordinance.pdf)
|
|
49
|
+
|
|
50
|
+
Tristan da Cunha:
|
|
51
|
+
* [Ratting Day](https://web.archive.org/web/20250826151056/https://www.tristandc.com/newsratting.php)
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
country = "SH"
|
|
55
|
+
default_language = "en_GB"
|
|
56
|
+
# %s (observed).
|
|
57
|
+
observed_label = tr("%s (observed)")
|
|
58
|
+
# Earliest year of holidays with an accessible online record.
|
|
59
|
+
start_year = 2015
|
|
60
|
+
subdivisions = (
|
|
61
|
+
"AC", # Ascension.
|
|
62
|
+
"HL", # Saint Helena.
|
|
63
|
+
"TA", # Tristan da Cunha.
|
|
64
|
+
)
|
|
65
|
+
subdivisions_aliases = {
|
|
66
|
+
"Ascension": "AC",
|
|
67
|
+
"Saint Helena": "HL",
|
|
68
|
+
"Tristan da Cunha": "TA",
|
|
69
|
+
}
|
|
70
|
+
supported_categories = (GOVERNMENT, PUBLIC)
|
|
71
|
+
supported_languages = ("en_GB", "en_US")
|
|
72
|
+
|
|
73
|
+
def __init__(self, *args, **kwargs):
|
|
74
|
+
ChristianHolidays.__init__(self)
|
|
75
|
+
InternationalHolidays.__init__(self)
|
|
76
|
+
StaticHolidays.__init__(self, cls=SaintHelenaAscensionAndTristanDaCunhaStaticHolidays)
|
|
77
|
+
kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON)
|
|
78
|
+
super().__init__(*args, **kwargs)
|
|
79
|
+
|
|
80
|
+
def _populate_public_holidays(self):
|
|
81
|
+
# Good Friday.
|
|
82
|
+
self._add_good_friday(tr("Good Friday"))
|
|
83
|
+
|
|
84
|
+
# Easter Monday.
|
|
85
|
+
self._add_easter_monday(tr("Easter Monday"))
|
|
86
|
+
|
|
87
|
+
if self._year <= 2022:
|
|
88
|
+
# Queen's Birthday.
|
|
89
|
+
name = tr("Queen's Birthday")
|
|
90
|
+
if self._year <= 2019:
|
|
91
|
+
self._add_holiday_3rd_mon_of_jun(name)
|
|
92
|
+
else:
|
|
93
|
+
self._add_holiday_2nd_mon_of_jun(name)
|
|
94
|
+
else:
|
|
95
|
+
# King's Birthday.
|
|
96
|
+
name = tr("King's Birthday")
|
|
97
|
+
if self._year == 2023:
|
|
98
|
+
self._add_holiday_jun_19(name)
|
|
99
|
+
else:
|
|
100
|
+
self._add_holiday_1st_fri_from_nov_11(name)
|
|
101
|
+
|
|
102
|
+
self._add_observed(
|
|
103
|
+
# Christmas Day.
|
|
104
|
+
self._add_christmas_day(tr("Christmas Day")),
|
|
105
|
+
rule=SAT_SUN_TO_NEXT_MON_TUE,
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
self._add_observed(
|
|
109
|
+
# Boxing Day.
|
|
110
|
+
self._add_christmas_day_two(tr("Boxing Day")),
|
|
111
|
+
rule=SAT_SUN_TO_NEXT_MON_TUE,
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
def _populate_subdiv_ac_public_holidays(self):
|
|
115
|
+
# Ascension Day.
|
|
116
|
+
self._add_ascension_thursday(tr("Ascension Day"))
|
|
117
|
+
|
|
118
|
+
def _populate_subdiv_hl_public_holidays(self):
|
|
119
|
+
self._add_observed(
|
|
120
|
+
# Saint Helena Day.
|
|
121
|
+
self._add_holiday_may_21(tr("Saint Helena Day")),
|
|
122
|
+
rule=SAT_TO_PREV_FRI + SUN_TO_NEXT_MON,
|
|
123
|
+
)
|
|
124
|
+
|
|
125
|
+
def _populate_subdiv_ta_public_holidays(self):
|
|
126
|
+
# Ascension Day.
|
|
127
|
+
self._add_ascension_thursday(tr("Ascension Day"))
|
|
128
|
+
|
|
129
|
+
ratting_day_dates = {
|
|
130
|
+
2015: (MAY, 16),
|
|
131
|
+
2016: (APR, 30),
|
|
132
|
+
2017: (MAY, 26),
|
|
133
|
+
2018: (JUN, 2),
|
|
134
|
+
2019: (MAY, 24),
|
|
135
|
+
2020: (APR, 25),
|
|
136
|
+
2021: (APR, 9),
|
|
137
|
+
2023: (JUN, 2),
|
|
138
|
+
2025: (MAY, 30),
|
|
139
|
+
}
|
|
140
|
+
# Ratting Day.
|
|
141
|
+
name = tr("Ratting Day")
|
|
142
|
+
if dt := ratting_day_dates.get(self._year):
|
|
143
|
+
self._add_holiday(name, dt)
|
|
144
|
+
|
|
145
|
+
# Anniversary Day.
|
|
146
|
+
self._add_holiday_aug_14(tr("Anniversary Day"))
|
|
147
|
+
|
|
148
|
+
def _populate_government_holidays(self):
|
|
149
|
+
# New Year's Day.
|
|
150
|
+
self._add_observed(self._add_new_years_day(tr("New Year's Day")))
|
|
151
|
+
|
|
152
|
+
# Whit Monday.
|
|
153
|
+
self._add_whit_monday(tr("Whit Monday"))
|
|
154
|
+
|
|
155
|
+
def _populate_subdiv_ac_government_holidays(self):
|
|
156
|
+
# August Bank Holiday.
|
|
157
|
+
self._add_holiday_last_mon_of_aug(tr("August Bank Holiday"))
|
|
158
|
+
|
|
159
|
+
def _populate_subdiv_hl_government_holidays(self):
|
|
160
|
+
# August Bank Holiday.
|
|
161
|
+
self._add_holiday_last_mon_of_aug(tr("August Bank Holiday"))
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
class SH(SaintHelenaAscensionAndTristanDaCunha):
|
|
165
|
+
pass
|
|
166
|
+
|
|
167
|
+
|
|
168
|
+
class SHN(SaintHelenaAscensionAndTristanDaCunha):
|
|
169
|
+
pass
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
class SaintHelenaAscensionAndTristanDaCunhaStaticHolidays:
|
|
173
|
+
"""Saint Helena, Ascension and Tristan da Cunha special holidays.
|
|
174
|
+
|
|
175
|
+
References:
|
|
176
|
+
* <https://web.archive.org/web/20250810194916/https://sainthelenaisland.info/holidays.htm>
|
|
177
|
+
* [The Duke of Edinburgh's Visit](https://web.archive.org/web/20250719002906/https://www.sainthelena.gov.sh/2024/news/public-holiday-declared-to-mark-visit-of-his-royal-highness-the-duke-of-edinburgh-public-events-announced/)
|
|
178
|
+
* [Queen Elizabeth II's State Funeral](https://web.archive.org/web/20250513122736/https://www.sainthelena.gov.sh/wp-content/uploads/2022/09/EX-GAZ-94-Proclamation-Proclaiming-His-Majesty-Public-Holiday-HM-Queen-II-Funeral-STH-ASC.pdf)
|
|
179
|
+
* [Coronation of His Majesty King Charles III](https://web.archive.org/web/20250719085105/https://www.sainthelena.gov.sh/2023/news/governors-deputy-declares-public-holiday-to-mark-the-coronation-of-his-majesty-king-charles-iii/)
|
|
180
|
+
"""
|
|
181
|
+
|
|
182
|
+
special_public_holidays = {
|
|
183
|
+
# Final Departure of R.M.S. St Helena.
|
|
184
|
+
2018: (FEB, 9, tr("Final Departure of R.M.S. St Helena")),
|
|
185
|
+
2022: (
|
|
186
|
+
# Queen Elizabeth II's Platinum Jubilee.
|
|
187
|
+
(JUN, 3, tr("Queen Elizabeth II's Platinum Jubilee")),
|
|
188
|
+
# Queen Elizabeth II's State Funeral.
|
|
189
|
+
(SEP, 19, tr("Queen Elizabeth II's State Funeral")),
|
|
190
|
+
),
|
|
191
|
+
2023: (
|
|
192
|
+
# The Duke of Edinburgh's Visit.
|
|
193
|
+
(JAN, 24, tr("The Duke of Edinburgh's Visit")),
|
|
194
|
+
# Coronation of His Majesty King Charles III.
|
|
195
|
+
(MAY, 8, tr("Coronation of His Majesty King Charles III")),
|
|
196
|
+
),
|
|
197
|
+
}
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
|
|
13
13
|
from gettext import gettext as tr
|
|
14
14
|
|
|
15
|
+
from holidays.calendars import _CustomIslamicHolidays
|
|
15
16
|
from holidays.calendars.gregorian import JUN, AUG, NOV
|
|
16
|
-
from holidays.calendars.islamic import _CustomIslamicHolidays
|
|
17
17
|
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
18
18
|
from holidays.observed_holiday_base import ObservedHolidayBase, SAT_SUN_TO_NEXT_WORKDAY
|
|
19
19
|
|
holidays/countries/singapore.py
CHANGED
|
@@ -60,7 +60,11 @@ class Singapore(
|
|
|
60
60
|
"""
|
|
61
61
|
|
|
62
62
|
country = "SG"
|
|
63
|
+
# %s (estimated).
|
|
64
|
+
estimated_label = tr("%s (estimated)")
|
|
63
65
|
default_language = "en_SG"
|
|
66
|
+
# %s (observed, estimated).
|
|
67
|
+
observed_estimated_label = tr("%s (observed, estimated)")
|
|
64
68
|
# %s (observed).
|
|
65
69
|
observed_label = tr("%s (observed)")
|
|
66
70
|
supported_languages = ("en_SG", "en_US", "th")
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# holidays
|
|
2
|
+
# --------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
|
+
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
|
+
# Website: https://github.com/vacanza/holidays
|
|
11
|
+
# License: MIT (see LICENSE file)
|
|
12
|
+
|
|
13
|
+
from holidays.groups import InternationalHolidays, IslamicHolidays
|
|
14
|
+
from holidays.holiday_base import HolidayBase
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class Somalia(HolidayBase, InternationalHolidays, IslamicHolidays):
|
|
18
|
+
"""Somalia holidays.
|
|
19
|
+
|
|
20
|
+
References:
|
|
21
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_Somalia>
|
|
22
|
+
* <https://web.archive.org/web/20250522034818/https://usa.mfa.gov.so/about-somalia/>
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
country = "SO"
|
|
26
|
+
# %s (estimated).
|
|
27
|
+
estimated_label = "%s (estimated)"
|
|
28
|
+
# Unification of Somaliland and Italian Somaliland into the Somali Republic on July 1st, 1960.
|
|
29
|
+
start_year = 1961
|
|
30
|
+
|
|
31
|
+
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
32
|
+
"""
|
|
33
|
+
Args:
|
|
34
|
+
islamic_show_estimated:
|
|
35
|
+
Whether to add "estimated" label to Islamic holidays name
|
|
36
|
+
if holiday date is estimated.
|
|
37
|
+
"""
|
|
38
|
+
InternationalHolidays.__init__(self)
|
|
39
|
+
IslamicHolidays.__init__(self, show_estimated=islamic_show_estimated)
|
|
40
|
+
super().__init__(*args, **kwargs)
|
|
41
|
+
|
|
42
|
+
def _populate_public_holidays(self):
|
|
43
|
+
# New Year's Day.
|
|
44
|
+
self._add_new_years_day("New Year's Day")
|
|
45
|
+
|
|
46
|
+
# Labor Day.
|
|
47
|
+
self._add_labor_day("Labour Day")
|
|
48
|
+
|
|
49
|
+
# Independence Day.
|
|
50
|
+
self._add_holiday_jun_26("Independence Day")
|
|
51
|
+
|
|
52
|
+
# Republic Day.
|
|
53
|
+
self._add_holiday_jul_1("Republic Day")
|
|
54
|
+
|
|
55
|
+
# Islamic New Year.
|
|
56
|
+
self._add_islamic_new_year_day("Islamic New Year")
|
|
57
|
+
|
|
58
|
+
# Ashura.
|
|
59
|
+
self._add_ashura_day("Ashura")
|
|
60
|
+
|
|
61
|
+
# Prophet's Birthday.
|
|
62
|
+
self._add_mawlid_day("Prophet's Birthday")
|
|
63
|
+
|
|
64
|
+
# Isra' and Mi'raj.
|
|
65
|
+
self._add_isra_and_miraj_day("Isra' and Mi'raj")
|
|
66
|
+
|
|
67
|
+
# Eid al-Fitr.
|
|
68
|
+
self._add_eid_al_fitr_day("Eid al-Fitr")
|
|
69
|
+
|
|
70
|
+
# Eid al-Adha.
|
|
71
|
+
self._add_eid_al_adha_day("Eid al-Adha")
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
class SO(Somalia):
|
|
75
|
+
pass
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
class SOM(Somalia):
|
|
79
|
+
pass
|
|
@@ -81,6 +81,10 @@ class SouthKorea(
|
|
|
81
81
|
country = "KR"
|
|
82
82
|
supported_categories = (BANK, PUBLIC)
|
|
83
83
|
default_language = "ko"
|
|
84
|
+
# %s (estimated).
|
|
85
|
+
estimated_label = tr("%s (추정)")
|
|
86
|
+
# Alternative holiday for %s (estimated).
|
|
87
|
+
observed_estimated_label = tr("%s 대체 휴일 (추정)")
|
|
84
88
|
# Alternative holiday for %s.
|
|
85
89
|
observed_label = tr("%s 대체 휴일")
|
|
86
90
|
supported_languages = ("en_US", "ko", "th")
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# holidays
|
|
2
|
+
# --------
|
|
3
|
+
# A fast, efficient Python library for generating country, province and state
|
|
4
|
+
# specific sets of holidays on the fly. It aims to make determining whether a
|
|
5
|
+
# specific date is a holiday as fast and flexible as possible.
|
|
6
|
+
#
|
|
7
|
+
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
|
|
8
|
+
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
9
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
10
|
+
# Website: https://github.com/vacanza/holidays
|
|
11
|
+
# License: MIT (see LICENSE file)
|
|
12
|
+
|
|
13
|
+
from holidays.calendars import _CustomIslamicHolidays
|
|
14
|
+
from holidays.calendars.gregorian import MAR, MAY, JUN, JUL, AUG
|
|
15
|
+
from holidays.constants import ISLAMIC, PUBLIC
|
|
16
|
+
from holidays.groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
17
|
+
from holidays.holiday_base import HolidayBase
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class SouthSudan(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
21
|
+
"""South Sudan holidays.
|
|
22
|
+
|
|
23
|
+
References:
|
|
24
|
+
* <https://en.wikipedia.org/wiki/Public_holidays_in_South_Sudan>
|
|
25
|
+
* [Guidelines for Opening Schools in South Sudan for the Academic Year, 2024](https://web.archive.org/web/20250716011243/https://mogei.gov.ss/super/assets/documents/calendar/2024_MoGEI_Academic%20calendar%20and%20implemention%20guidelines_%20South%20Sudan_A5_final_Approved%20and%20signed%20-%203.pdf)
|
|
26
|
+
* <https://web.archive.org/web/20241211222746/http://www.doitinafrica.com/south-sudan/events/public-holidays.htm>
|
|
27
|
+
* [2016](https://web.archive.org/web/20250825141310/https://docs.southsudanngoforum.org/sites/default/files/2016-11/2016%20ANNUAL%20HOLIDAYS%20CALENDAR%20.pdf)
|
|
28
|
+
* [2018](https://web.archive.org/web/20250825141312/https://docs.southsudanngoforum.org/sites/default/files/2018-01/Annual%20Holidays%20for%202018.pdf)
|
|
29
|
+
* [2020](https://web.archive.org/web/20250825141316/https://docs.southsudanngoforum.org/sites/default/files/2020-01/South_Sudan_Annual_Holidays_for_2020.pdf)
|
|
30
|
+
* [2021](https://web.archive.org/web/20250514045013/https://docs.southsudanngoforum.org/sites/default/files/2021-02/Public%20Holidays%20Calendar%202021.pdf)
|
|
31
|
+
* [2022](https://web.archive.org/web/20250430165748/https://docs.southsudanngoforum.org/sites/default/files/2022-03/HRPublic%20Holidays%202022HR.pdf)
|
|
32
|
+
* [2025](https://web.archive.org/web/20250426232710/https://www.netherlandsandyou.nl/web/south-sudan/about-us/closing-days)
|
|
33
|
+
"""
|
|
34
|
+
|
|
35
|
+
country = "SS"
|
|
36
|
+
# %s (estimated).
|
|
37
|
+
estimated_label = "%s (estimated)"
|
|
38
|
+
# South Sudan became independent on 9 July 2011.
|
|
39
|
+
start_year = 2012
|
|
40
|
+
supported_categories = (ISLAMIC, PUBLIC)
|
|
41
|
+
|
|
42
|
+
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
43
|
+
"""
|
|
44
|
+
Args:
|
|
45
|
+
islamic_show_estimated:
|
|
46
|
+
Whether to add "estimated" label to Islamic holidays name
|
|
47
|
+
if holiday date is estimated.
|
|
48
|
+
"""
|
|
49
|
+
ChristianHolidays.__init__(self)
|
|
50
|
+
InternationalHolidays.__init__(self)
|
|
51
|
+
IslamicHolidays.__init__(
|
|
52
|
+
self, cls=SouthSudanIslamicHolidays, show_estimated=islamic_show_estimated
|
|
53
|
+
)
|
|
54
|
+
super().__init__(*args, **kwargs)
|
|
55
|
+
|
|
56
|
+
def _populate_public_holidays(self):
|
|
57
|
+
# New Year's Day.
|
|
58
|
+
self._add_new_years_day("New Year's Day")
|
|
59
|
+
|
|
60
|
+
# Peace Agreement Day.
|
|
61
|
+
self._add_holiday_jan_9("Peace Agreement Day")
|
|
62
|
+
|
|
63
|
+
# Good Friday.
|
|
64
|
+
self._add_good_friday("Good Friday")
|
|
65
|
+
|
|
66
|
+
# Holy Saturday.
|
|
67
|
+
self._add_holy_saturday("Holy Saturday")
|
|
68
|
+
|
|
69
|
+
# Easter Sunday.
|
|
70
|
+
self._add_easter_sunday("Easter Sunday")
|
|
71
|
+
|
|
72
|
+
# Easter Monday.
|
|
73
|
+
self._add_easter_monday("Easter Monday")
|
|
74
|
+
|
|
75
|
+
# International Labour Day.
|
|
76
|
+
self._add_labor_day("International Labour Day")
|
|
77
|
+
|
|
78
|
+
# SPLA Day.
|
|
79
|
+
self._add_holiday_may_16("SPLA Day")
|
|
80
|
+
|
|
81
|
+
# Independence Day.
|
|
82
|
+
self._add_holiday_jul_9("Independence Day")
|
|
83
|
+
|
|
84
|
+
# Martyrs' Day.
|
|
85
|
+
self._add_holiday_jul_30("Martyrs' Day")
|
|
86
|
+
|
|
87
|
+
# Christmas Eve.
|
|
88
|
+
self._add_christmas_eve("Christmas Eve")
|
|
89
|
+
|
|
90
|
+
# Christmas Day.
|
|
91
|
+
self._add_christmas_day("Christmas Day")
|
|
92
|
+
|
|
93
|
+
# Second Day of Christmas.
|
|
94
|
+
self._add_christmas_day_two("Second Day of Christmas")
|
|
95
|
+
|
|
96
|
+
# Eid al-Fitr.
|
|
97
|
+
self._add_eid_al_fitr_day("Eid al-Fitr")
|
|
98
|
+
|
|
99
|
+
# Eid al-Adha.
|
|
100
|
+
self._add_eid_al_adha_day("Eid al-Adha")
|
|
101
|
+
|
|
102
|
+
def _populate_islamic_holidays(self):
|
|
103
|
+
# Eid al-Fitr Holiday.
|
|
104
|
+
self._add_eid_al_fitr_day_two("Eid al-Fitr Holiday")
|
|
105
|
+
|
|
106
|
+
# Eid al-Adha Holiday.
|
|
107
|
+
self._add_eid_al_adha_day_two("Eid al-Adha Holiday")
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class SS(SouthSudan):
|
|
111
|
+
pass
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
class SSD(SouthSudan):
|
|
115
|
+
pass
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
class SouthSudanIslamicHolidays(_CustomIslamicHolidays):
|
|
119
|
+
EID_AL_ADHA_DATES = {
|
|
120
|
+
2018: (AUG, 21),
|
|
121
|
+
2020: (JUL, 31),
|
|
122
|
+
2021: (JUL, 18),
|
|
123
|
+
2022: (JUL, 9),
|
|
124
|
+
2025: (JUN, 6),
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
EID_AL_FITR_DATES = {
|
|
128
|
+
2018: (JUN, 14),
|
|
129
|
+
2020: (MAY, 22),
|
|
130
|
+
2021: (MAY, 13),
|
|
131
|
+
2022: (MAY, 3),
|
|
132
|
+
2025: (MAR, 31),
|
|
133
|
+
}
|
holidays/countries/spain.py
CHANGED
|
@@ -47,11 +47,34 @@ class Spain(
|
|
|
47
47
|
* [2024](https://web.archive.org/web/20240401192304/https://www.boe.es/buscar/doc.php?id=BOE-A-2023-22014)
|
|
48
48
|
* [2025](https://web.archive.org/web/20241226214918/https://www.boe.es/buscar/doc.php?id=BOE-A-2024-21316)
|
|
49
49
|
|
|
50
|
+
Subdivisions Holidays References:
|
|
51
|
+
* Navarra:
|
|
52
|
+
* [2010](https://web.archive.org/web/20250903095706/https://www.lexnavarra.navarra.es/detalle.asp?r=8402)
|
|
53
|
+
* [2011](https://web.archive.org/web/20250903095217/https://www.lexnavarra.navarra.es/detalle.asp?r=8403)
|
|
54
|
+
* [2012](https://web.archive.org/web/20250903095133/https://www.lexnavarra.navarra.es/detalle.asp?r=12993)
|
|
55
|
+
* [2013](https://web.archive.org/web/20250903095136/https://www.lexnavarra.navarra.es/detalle.asp?r=26226)
|
|
56
|
+
* [2014](https://web.archive.org/web/20250903095123/https://www.lexnavarra.navarra.es/detalle.asp?r=32382)
|
|
57
|
+
* [2015](https://web.archive.org/web/20250903095257/https://www.lexnavarra.navarra.es/detalle.asp?r=34276)
|
|
58
|
+
* [2016](https://web.archive.org/web/20250903095302/https://www.lexnavarra.navarra.es/detalle.asp?r=36141)
|
|
59
|
+
* [2017](https://web.archive.org/web/20250903095306/https://www.lexnavarra.navarra.es/detalle.asp?r=37665)
|
|
60
|
+
* [2018](https://web.archive.org/web/20170728130845/https://www.lexnavarra.navarra.es/detalle.asp?r=38904)
|
|
61
|
+
* [2019](https://web.archive.org/web/20250903095819/https://www.lexnavarra.navarra.es/detalle.asp?r=50305)
|
|
62
|
+
* [2020](https://web.archive.org/web/20250623005808/https://www.lexnavarra.navarra.es/detalle.asp?r=52229)
|
|
63
|
+
* [2021](https://web.archive.org/web/20250623010750/https://www.lexnavarra.navarra.es/detalle.asp?r=52748)
|
|
64
|
+
* [2022](https://web.archive.org/web/20250623000851/https://www.lexnavarra.navarra.es/detalle.asp?r=53763)
|
|
65
|
+
* [2023](https://web.archive.org/web/20250623010106/https://www.lexnavarra.navarra.es/detalle.asp?r=55481)
|
|
66
|
+
* [2024](https://web.archive.org/web/20250623001355/https://www.lexnavarra.navarra.es/detalle.asp?r=56116)
|
|
67
|
+
* [2025](https://web.archive.org/web/20250622235218/https://www.lexnavarra.navarra.es/detalle.asp?r=57122)
|
|
68
|
+
|
|
50
69
|
Holidays checked with official sources for 2010-2025 only.
|
|
51
70
|
"""
|
|
52
71
|
|
|
53
72
|
country = "ES"
|
|
54
73
|
default_language = "es"
|
|
74
|
+
# %s (estimated).
|
|
75
|
+
estimated_label = tr("%s (estimado)")
|
|
76
|
+
# Monday following %s (estimated).
|
|
77
|
+
observed_estimated_label = tr("Lunes siguiente a %s (estimado)")
|
|
55
78
|
# Monday following %s.
|
|
56
79
|
observed_label = tr("Lunes siguiente a %s")
|
|
57
80
|
subdivisions = (
|
|
@@ -637,6 +660,9 @@ class Spain(
|
|
|
637
660
|
if self._year in {2011, 2013, 2015, 2016, 2017} or self._year >= 2022:
|
|
638
661
|
self._add_saint_james_day(tr("Santiago Apóstol"))
|
|
639
662
|
|
|
663
|
+
# Saint Francis Xavier's Day.
|
|
664
|
+
self._move_holiday(self._add_holiday_dec_3(tr("San Francisco Javier")))
|
|
665
|
+
|
|
640
666
|
if self._year == 2020:
|
|
641
667
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
642
668
|
|