holidays 0.26__py3-none-any.whl → 0.27__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/__init__.py +1 -1
- holidays/calendars/__init__.py +5 -7
- holidays/calendars/buddhist.py +1 -3
- holidays/calendars/chinese.py +1 -3
- holidays/calendars/custom.py +1 -3
- holidays/calendars/hindu.py +1 -3
- holidays/calendars/islamic.py +1341 -1345
- holidays/calendars/thai.py +217 -26
- holidays/countries/__init__.py +4 -0
- holidays/countries/albania.py +6 -17
- holidays/countries/andorra.py +2 -6
- holidays/countries/angola.py +53 -39
- holidays/countries/argentina.py +13 -24
- holidays/countries/aruba.py +109 -48
- holidays/countries/australia.py +31 -69
- holidays/countries/azerbaijan.py +30 -38
- holidays/countries/bahrain.py +5 -5
- holidays/countries/bangladesh.py +1 -3
- holidays/countries/belarus.py +1 -3
- holidays/countries/belize.py +4 -16
- holidays/countries/bolivia.py +2 -6
- holidays/countries/bosnia_and_herzegovina.py +5 -17
- holidays/countries/botswana.py +9 -18
- holidays/countries/brazil.py +2 -5
- holidays/countries/brunei.py +427 -0
- holidays/countries/bulgaria.py +2 -6
- holidays/countries/burkina_faso.py +141 -0
- holidays/countries/burundi.py +2 -5
- holidays/countries/cambodia.py +323 -0
- holidays/countries/cameroon.py +71 -77
- holidays/countries/canada.py +19 -28
- holidays/countries/chad.py +133 -0
- holidays/countries/chile.py +4 -11
- holidays/countries/china.py +1 -2
- holidays/countries/colombia.py +17 -15
- holidays/countries/costa_rica.py +2 -6
- holidays/countries/curacao.py +100 -46
- holidays/countries/cyprus.py +2 -6
- holidays/countries/czechia.py +4 -12
- holidays/countries/denmark.py +1 -3
- holidays/countries/dominican_republic.py +1 -3
- holidays/countries/ecuador.py +54 -54
- holidays/countries/egypt.py +2 -5
- holidays/countries/eswatini.py +34 -44
- holidays/countries/ethiopia.py +5 -14
- holidays/countries/finland.py +1 -3
- holidays/countries/gabon.py +49 -53
- holidays/countries/greece.py +1 -2
- holidays/countries/honduras.py +16 -13
- holidays/countries/hongkong.py +7 -8
- holidays/countries/hungary.py +93 -92
- holidays/countries/india.py +4 -11
- holidays/countries/indonesia.py +120 -114
- holidays/countries/ireland.py +5 -15
- holidays/countries/isle_of_man.py +9 -4
- holidays/countries/israel.py +6 -18
- holidays/countries/italy.py +1 -2
- holidays/countries/jamaica.py +10 -18
- holidays/countries/japan.py +10 -16
- holidays/countries/kazakhstan.py +7 -22
- holidays/countries/kenya.py +1 -3
- holidays/countries/kyrgyzstan.py +2 -5
- holidays/countries/latvia.py +2 -6
- holidays/countries/lesotho.py +52 -32
- holidays/countries/lithuania.py +4 -12
- holidays/countries/madagascar.py +3 -9
- holidays/countries/malawi.py +34 -26
- holidays/countries/malaysia.py +223 -248
- holidays/countries/marshall_islands.py +4 -9
- holidays/countries/mexico.py +1 -3
- holidays/countries/moldova.py +3 -6
- holidays/countries/monaco.py +16 -26
- holidays/countries/montenegro.py +23 -19
- holidays/countries/morocco.py +2 -5
- holidays/countries/mozambique.py +35 -31
- holidays/countries/namibia.py +54 -35
- holidays/countries/new_zealand.py +11 -21
- holidays/countries/nicaragua.py +26 -22
- holidays/countries/nigeria.py +6 -17
- holidays/countries/north_macedonia.py +3 -8
- holidays/countries/norway.py +1 -3
- holidays/countries/pakistan.py +71 -72
- holidays/countries/panama.py +25 -24
- holidays/countries/paraguay.py +54 -47
- holidays/countries/philippines.py +6 -2
- holidays/countries/poland.py +3 -9
- holidays/countries/portugal.py +3 -11
- holidays/countries/romania.py +3 -5
- holidays/countries/saudi_arabia.py +8 -22
- holidays/countries/serbia.py +19 -29
- holidays/countries/singapore.py +70 -74
- holidays/countries/slovakia.py +1 -4
- holidays/countries/south_africa.py +60 -62
- holidays/countries/south_korea.py +14 -23
- holidays/countries/spain.py +2 -5
- holidays/countries/sweden.py +1 -3
- holidays/countries/taiwan.py +2 -5
- holidays/countries/thailand.py +34 -81
- holidays/countries/turkey.py +1 -3
- holidays/countries/ukraine.py +6 -18
- holidays/countries/united_arab_emirates.py +21 -29
- holidays/countries/united_kingdom.py +47 -67
- holidays/countries/united_states.py +42 -72
- holidays/countries/vatican_city.py +1 -3
- holidays/countries/venezuela.py +8 -6
- holidays/countries/vietnam.py +6 -18
- holidays/countries/zambia.py +63 -33
- holidays/countries/zimbabwe.py +56 -37
- holidays/financial/european_central_bank.py +1 -3
- holidays/financial/ny_stock_exchange.py +31 -48
- holidays/groups/__init__.py +18 -0
- holidays/groups/buddhist.py +71 -0
- holidays/groups/chinese.py +235 -0
- holidays/groups/christian.py +483 -0
- holidays/groups/hindu.py +71 -0
- holidays/groups/international.py +157 -0
- holidays/groups/islamic.py +288 -0
- holidays/groups/thai.py +157 -0
- holidays/helpers.py +20 -0
- holidays/holiday_base.py +49 -75
- holidays/holiday_groups.py +11 -1190
- holidays/locale/am/LC_MESSAGES/ET.po +18 -15
- holidays/locale/ar/LC_MESSAGES/CA.po +43 -43
- holidays/locale/ar/LC_MESSAGES/ET.po +18 -15
- holidays/locale/ar/LC_MESSAGES/UA.po +16 -14
- holidays/locale/be/LC_MESSAGES/BY.po +9 -8
- holidays/locale/bg/LC_MESSAGES/BG.po +14 -12
- holidays/locale/da/LC_MESSAGES/DK.po +7 -6
- holidays/locale/el/LC_MESSAGES/CY.po +5 -3
- holidays/locale/el/LC_MESSAGES/GR.po +13 -13
- holidays/locale/en/LC_MESSAGES/CA.po +43 -43
- holidays/locale/en_US/LC_MESSAGES/AR.po +26 -25
- holidays/locale/en_US/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/AW.po +87 -0
- holidays/locale/en_US/LC_MESSAGES/BG.po +14 -12
- holidays/locale/en_US/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/BN.po +96 -0
- holidays/locale/en_US/LC_MESSAGES/BY.po +9 -8
- holidays/locale/en_US/LC_MESSAGES/CA.po +43 -43
- holidays/locale/en_US/LC_MESSAGES/CL.po +18 -18
- holidays/locale/en_US/LC_MESSAGES/CO.po +19 -19
- holidays/locale/en_US/LC_MESSAGES/CR.po +6 -5
- holidays/locale/en_US/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/CW.po +82 -0
- holidays/locale/en_US/LC_MESSAGES/CY.po +5 -3
- holidays/locale/en_US/LC_MESSAGES/DK.po +7 -6
- holidays/locale/en_US/LC_MESSAGES/DO.po +12 -12
- holidays/locale/en_US/LC_MESSAGES/EC.po +11 -12
- holidays/locale/en_US/LC_MESSAGES/ET.po +18 -15
- holidays/locale/en_US/LC_MESSAGES/FI.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/GR.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HN.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/HU.po +109 -0
- holidays/locale/en_US/LC_MESSAGES/JP.po +19 -17
- holidays/locale/en_US/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/KH.po +139 -0
- holidays/locale/en_US/LC_MESSAGES/MC.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/MC.po +16 -15
- holidays/locale/en_US/LC_MESSAGES/MD.po +5 -5
- holidays/locale/en_US/LC_MESSAGES/MX.po +3 -2
- holidays/locale/en_US/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/en_US/LC_MESSAGES/NI.po +13 -13
- holidays/locale/en_US/LC_MESSAGES/NO.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/PL.po +23 -21
- holidays/locale/en_US/LC_MESSAGES/PT.po +31 -31
- holidays/locale/en_US/LC_MESSAGES/PY.po +13 -11
- holidays/locale/en_US/LC_MESSAGES/RO.po +4 -3
- holidays/locale/en_US/LC_MESSAGES/RS.po +10 -10
- holidays/locale/en_US/LC_MESSAGES/SE.po +1 -1
- holidays/locale/en_US/LC_MESSAGES/SK.po +14 -14
- holidays/locale/en_US/LC_MESSAGES/TH.po +41 -41
- holidays/locale/en_US/LC_MESSAGES/UA.po +16 -14
- holidays/locale/en_US/LC_MESSAGES/VE.po +6 -6
- holidays/locale/es/LC_MESSAGES/AR.po +26 -25
- holidays/locale/es/LC_MESSAGES/CL.po +18 -18
- holidays/locale/es/LC_MESSAGES/CO.po +19 -19
- holidays/locale/es/LC_MESSAGES/CR.po +6 -5
- holidays/locale/es/LC_MESSAGES/DO.po +12 -12
- holidays/locale/es/LC_MESSAGES/EC.po +11 -12
- holidays/locale/es/LC_MESSAGES/HN.po +12 -12
- holidays/locale/es/LC_MESSAGES/MX.po +3 -2
- holidays/locale/es/LC_MESSAGES/NI.po +10 -10
- holidays/locale/es/LC_MESSAGES/PY.po +13 -11
- holidays/locale/es/LC_MESSAGES/VE.po +6 -6
- holidays/locale/fi/LC_MESSAGES/FI.po +13 -13
- holidays/locale/fr/LC_MESSAGES/CA.po +43 -43
- holidays/locale/fr/LC_MESSAGES/MC.po +15 -14
- holidays/locale/hu/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/hu/LC_MESSAGES/HU.po +109 -0
- holidays/locale/ja/LC_MESSAGES/JP.po +19 -17
- holidays/locale/km/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/km/LC_MESSAGES/KH.po +139 -0
- holidays/locale/ms/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/ms/LC_MESSAGES/BN.po +96 -0
- holidays/locale/nl/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/AW.po +87 -0
- holidays/locale/nl/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/nl/LC_MESSAGES/CW.po +82 -0
- holidays/locale/no/LC_MESSAGES/NO.po +1 -1
- holidays/locale/pap/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/pap/LC_MESSAGES/AW.po +87 -0
- holidays/locale/pap/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/pap/LC_MESSAGES/CW.po +82 -0
- holidays/locale/pl/LC_MESSAGES/PL.po +23 -21
- holidays/locale/pt_PT/LC_MESSAGES/PT.po +31 -31
- holidays/locale/ro/LC_MESSAGES/MD.po +5 -5
- holidays/locale/ro/LC_MESSAGES/RO.po +4 -3
- holidays/locale/sk/LC_MESSAGES/SK.po +14 -14
- holidays/locale/sr/LC_MESSAGES/RS.po +10 -10
- holidays/locale/sv/LC_MESSAGES/FI.po +13 -13
- holidays/locale/sv/LC_MESSAGES/SE.po +1 -1
- holidays/locale/th/LC_MESSAGES/BN.mo +0 -0
- holidays/locale/th/LC_MESSAGES/BN.po +96 -0
- holidays/locale/th/LC_MESSAGES/CA.po +43 -43
- holidays/locale/th/LC_MESSAGES/KH.mo +0 -0
- holidays/locale/th/LC_MESSAGES/KH.po +145 -0
- holidays/locale/th/LC_MESSAGES/TH.po +41 -41
- holidays/locale/uk/LC_MESSAGES/AR.po +26 -25
- holidays/locale/uk/LC_MESSAGES/AW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/AW.po +87 -0
- holidays/locale/uk/LC_MESSAGES/CL.po +18 -18
- holidays/locale/uk/LC_MESSAGES/CO.po +19 -19
- holidays/locale/uk/LC_MESSAGES/CR.po +6 -5
- holidays/locale/uk/LC_MESSAGES/CW.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/CW.po +82 -0
- holidays/locale/uk/LC_MESSAGES/DK.po +7 -6
- holidays/locale/uk/LC_MESSAGES/DO.po +12 -12
- holidays/locale/uk/LC_MESSAGES/EC.po +11 -12
- holidays/locale/uk/LC_MESSAGES/FI.po +13 -13
- holidays/locale/uk/LC_MESSAGES/HN.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HN.po +13 -13
- holidays/locale/uk/LC_MESSAGES/HU.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/HU.po +109 -0
- holidays/locale/uk/LC_MESSAGES/MC.po +15 -14
- holidays/locale/uk/LC_MESSAGES/MD.po +5 -5
- holidays/locale/uk/LC_MESSAGES/MX.po +3 -2
- holidays/locale/uk/LC_MESSAGES/NI.mo +0 -0
- holidays/locale/uk/LC_MESSAGES/NI.po +13 -13
- holidays/locale/uk/LC_MESSAGES/NO.po +1 -1
- holidays/locale/uk/LC_MESSAGES/PL.po +23 -21
- holidays/locale/uk/LC_MESSAGES/PY.po +13 -11
- holidays/locale/uk/LC_MESSAGES/RO.po +4 -3
- holidays/locale/uk/LC_MESSAGES/SE.po +1 -1
- holidays/locale/uk/LC_MESSAGES/SK.po +14 -14
- holidays/locale/uk/LC_MESSAGES/UA.po +16 -14
- holidays/locale/uk/LC_MESSAGES/VE.po +6 -6
- holidays/registry.py +7 -11
- holidays/utils.py +5 -15
- {holidays-0.26.dist-info → holidays-0.27.dist-info}/METADATA +25 -7
- holidays-0.27.dist-info/RECORD +449 -0
- holidays-0.26.dist-info/RECORD +0 -402
- {holidays-0.26.dist-info → holidays-0.27.dist-info}/LICENSE +0 -0
- {holidays-0.26.dist-info → holidays-0.27.dist-info}/WHEEL +0 -0
- {holidays-0.26.dist-info → holidays-0.27.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# python-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: dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
8
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
9
|
+
# Website: https://github.com/dr-prodigy/python-holidays
|
|
10
|
+
# License: MIT (see LICENSE file)
|
|
11
|
+
|
|
12
|
+
from datetime import date
|
|
13
|
+
from datetime import timedelta as td
|
|
14
|
+
|
|
15
|
+
from holidays.calendars import _CustomIslamicCalendar
|
|
16
|
+
from holidays.constants import JAN, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
|
|
17
|
+
from holidays.holiday_base import HolidayBase
|
|
18
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class BurkinaFaso(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
22
|
+
"""
|
|
23
|
+
References:
|
|
24
|
+
- https://en.wikipedia.org/wiki/Public_holidays_in_Burkina_Faso
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
country = "BF"
|
|
28
|
+
|
|
29
|
+
def __init__(self, *args, **kwargs) -> None:
|
|
30
|
+
ChristianHolidays.__init__(self)
|
|
31
|
+
InternationalHolidays.__init__(self)
|
|
32
|
+
IslamicHolidays.__init__(self, calendar=BurkinaFasoIslamicCalendar())
|
|
33
|
+
super().__init__(*args, **kwargs)
|
|
34
|
+
|
|
35
|
+
def _add_observed(self, dt: date) -> None:
|
|
36
|
+
if self.observed and self._is_sunday(dt):
|
|
37
|
+
self._add_holiday("%s (Observed)" % self[dt], dt + td(days=+1))
|
|
38
|
+
|
|
39
|
+
def _populate(self, year):
|
|
40
|
+
# On 5 August 1960, Burkina Faso (Republic of Upper Volta at that time)
|
|
41
|
+
# gained independence from France.
|
|
42
|
+
if year <= 1960:
|
|
43
|
+
return None
|
|
44
|
+
|
|
45
|
+
super()._populate(year)
|
|
46
|
+
|
|
47
|
+
# New Year's Day.
|
|
48
|
+
self._add_observed(self._add_new_years_day("New Year's Day"))
|
|
49
|
+
|
|
50
|
+
if year >= 1967:
|
|
51
|
+
# Revolution Day.
|
|
52
|
+
self._add_observed(self._add_holiday("Revolution Day", JAN, 3))
|
|
53
|
+
|
|
54
|
+
# International Women's Day.
|
|
55
|
+
self._add_observed(self._add_womens_day("International Women's Day"))
|
|
56
|
+
|
|
57
|
+
# Easter Monday.
|
|
58
|
+
self._add_easter_monday("Easter Monday")
|
|
59
|
+
|
|
60
|
+
# Labour Day.
|
|
61
|
+
self._add_observed(self._add_labor_day("Labour Day"))
|
|
62
|
+
|
|
63
|
+
# Ascension Day.
|
|
64
|
+
self._add_ascension_thursday("Ascension Day")
|
|
65
|
+
|
|
66
|
+
# Independence Day.
|
|
67
|
+
self._add_observed(self._add_holiday("Independence Day", AUG, 5))
|
|
68
|
+
|
|
69
|
+
# Assumption Day.
|
|
70
|
+
self._add_observed(self._add_assumption_of_mary_day("Assumption Day"))
|
|
71
|
+
|
|
72
|
+
if year >= 2016:
|
|
73
|
+
# Martyrs' Day.
|
|
74
|
+
self._add_observed(self._add_holiday("Martyrs' Day", OCT, 31))
|
|
75
|
+
|
|
76
|
+
# All Saints' Day.
|
|
77
|
+
self._add_observed(self._add_all_saints_day("All Saints' Day"))
|
|
78
|
+
|
|
79
|
+
self._add_observed(
|
|
80
|
+
# Proclamation of Independence Day.
|
|
81
|
+
self._add_holiday("Proclamation of Independence Day", DEC, 11)
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
# Christmas Day.
|
|
85
|
+
self._add_observed(self._add_christmas_day("Christmas Day"))
|
|
86
|
+
|
|
87
|
+
# Eid al-Fitr.
|
|
88
|
+
self._add_eid_al_fitr_day("Eid al-Fitr")
|
|
89
|
+
|
|
90
|
+
# Eid al-Adha.
|
|
91
|
+
self._add_eid_al_adha_day("Eid al-Adha")
|
|
92
|
+
|
|
93
|
+
# Mawlid.
|
|
94
|
+
self._add_mawlid_day("Mawlid")
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
class BF(BurkinaFaso):
|
|
98
|
+
pass
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class BFA(BurkinaFaso):
|
|
102
|
+
pass
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
class BurkinaFasoIslamicCalendar(_CustomIslamicCalendar):
|
|
106
|
+
EID_AL_ADHA_DATES = {
|
|
107
|
+
2014: (OCT, 5),
|
|
108
|
+
2015: (SEP, 24),
|
|
109
|
+
2016: (SEP, 13),
|
|
110
|
+
2017: (SEP, 2),
|
|
111
|
+
2018: (AUG, 21),
|
|
112
|
+
2019: (AUG, 11),
|
|
113
|
+
2020: (JUL, 31),
|
|
114
|
+
2021: (JUL, 20),
|
|
115
|
+
2022: (JUL, 9),
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
EID_AL_FITR_DATES = {
|
|
119
|
+
2014: (JUL, 29),
|
|
120
|
+
2015: (JUL, 18),
|
|
121
|
+
2016: (JUL, 7),
|
|
122
|
+
2017: (JUN, 26),
|
|
123
|
+
2018: (JUN, 15),
|
|
124
|
+
2019: (JUN, 4),
|
|
125
|
+
2020: (MAY, 24),
|
|
126
|
+
2021: (MAY, 13),
|
|
127
|
+
2022: (MAY, 2),
|
|
128
|
+
2023: (APR, 21),
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
MAWLID_DATES = {
|
|
132
|
+
2014: (JAN, 14),
|
|
133
|
+
2015: ((JAN, 3), (DEC, 24)),
|
|
134
|
+
2016: (DEC, 12),
|
|
135
|
+
2017: (DEC, 1),
|
|
136
|
+
2018: (NOV, 21),
|
|
137
|
+
2019: (NOV, 10),
|
|
138
|
+
2020: (OCT, 29),
|
|
139
|
+
2021: (OCT, 19),
|
|
140
|
+
2022: (OCT, 9),
|
|
141
|
+
}
|
holidays/countries/burundi.py
CHANGED
|
@@ -15,13 +15,10 @@ from typing import Optional
|
|
|
15
15
|
|
|
16
16
|
from holidays.constants import FEB, APR, JUN, JUL, OCT
|
|
17
17
|
from holidays.holiday_base import HolidayBase
|
|
18
|
-
from holidays.holiday_groups import ChristianHolidays, IslamicHolidays
|
|
19
|
-
from holidays.holiday_groups import InternationalHolidays
|
|
18
|
+
from holidays.holiday_groups import ChristianHolidays, IslamicHolidays, InternationalHolidays
|
|
20
19
|
|
|
21
20
|
|
|
22
|
-
class Burundi(
|
|
23
|
-
HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
24
|
-
):
|
|
21
|
+
class Burundi(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
25
22
|
"""
|
|
26
23
|
Burundian holidays
|
|
27
24
|
Note that holidays falling on a sunday maybe observed
|
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
# python-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: dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
|
|
8
|
+
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
|
|
9
|
+
# Website: https://github.com/dr-prodigy/python-holidays
|
|
10
|
+
# License: MIT (see LICENSE file)
|
|
11
|
+
|
|
12
|
+
from datetime import timedelta as td
|
|
13
|
+
from gettext import gettext as tr
|
|
14
|
+
|
|
15
|
+
from holidays.calendars import KHMER_CALENDAR
|
|
16
|
+
from holidays.constants import JAN, APR, MAY, JUN, AUG, SEP, OCT, NOV, DEC
|
|
17
|
+
from holidays.holiday_base import HolidayBase
|
|
18
|
+
from holidays.holiday_groups import InternationalHolidays, ThaiCalendarHolidays
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class Cambodia(HolidayBase, InternationalHolidays, ThaiCalendarHolidays):
|
|
22
|
+
"""
|
|
23
|
+
A subclass of :py:class:`HolidayBase` representing public holidays
|
|
24
|
+
in Cambodia.
|
|
25
|
+
|
|
26
|
+
References:
|
|
27
|
+
|
|
28
|
+
- Based on: https://www.nbc.gov.kh/english/news_and_events/official_holiday.php
|
|
29
|
+
https://www.nbc.gov.kh/news_and_events/official_holiday.php
|
|
30
|
+
https://en.wikipedia.org/wiki/Public_holidays_in_Cambodia
|
|
31
|
+
|
|
32
|
+
- Checked with: https://asean.org/wp-content/uploads/2021/12/ASEAN-National-Holidays-2022.pdf # noqa: E501
|
|
33
|
+
https://asean.org/wp-content/uploads/2022/12/ASEAN-Public-Holidays-2023.pdf # noqa: E501
|
|
34
|
+
https://www.timeanddate.com/holidays/cambodia/
|
|
35
|
+
|
|
36
|
+
Limitations:
|
|
37
|
+
|
|
38
|
+
- Cambodian holidays only works from 1993 onwards.
|
|
39
|
+
|
|
40
|
+
- Exact Public Holidays as per Cambodia's Official Gazette are only
|
|
41
|
+
available from 2015 onwards.
|
|
42
|
+
|
|
43
|
+
- Cambodian Lunar Calendar Holidays only work from 1941 (B.E. 2485) onwards
|
|
44
|
+
until 2057 (B.E. 2601) as we only have Thai year-type data for
|
|
45
|
+
cross-checking until then for Cambodian Buddhist Holidays.
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
Country created by: `PPsyrius <https://github.com/PPsyrius>`__
|
|
49
|
+
|
|
50
|
+
Country maintained by: `PPsyrius <https://github.com/PPsyrius>`__
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
country = "KH"
|
|
54
|
+
default_language = "km"
|
|
55
|
+
|
|
56
|
+
# Special Cases.
|
|
57
|
+
|
|
58
|
+
sangkranta_in_lieu_covid = tr(
|
|
59
|
+
# Khmer New Year's Replacement Holiday
|
|
60
|
+
"ថ្ងៃឈប់សម្រាកសងជំនួសឲ្យពិធីបុណ្យចូលឆ្នាំថ្មីប្រពៃណីជាតិ"
|
|
61
|
+
)
|
|
62
|
+
# Special Public Holiday
|
|
63
|
+
special_in_lieu_holidays = tr("ថ្ងៃឈប់សម្រាកសងជំនួស")
|
|
64
|
+
|
|
65
|
+
special_holidays = {
|
|
66
|
+
2016: (
|
|
67
|
+
(MAY, 2, special_in_lieu_holidays),
|
|
68
|
+
(MAY, 16, special_in_lieu_holidays),
|
|
69
|
+
),
|
|
70
|
+
2018: (MAY, 21, special_in_lieu_holidays),
|
|
71
|
+
2019: (SEP, 30, special_in_lieu_holidays),
|
|
72
|
+
2020: (
|
|
73
|
+
(MAY, 11, special_in_lieu_holidays),
|
|
74
|
+
(AUG, 17, sangkranta_in_lieu_covid),
|
|
75
|
+
(AUG, 18, sangkranta_in_lieu_covid),
|
|
76
|
+
(AUG, 19, sangkranta_in_lieu_covid),
|
|
77
|
+
(AUG, 20, sangkranta_in_lieu_covid),
|
|
78
|
+
(AUG, 21, sangkranta_in_lieu_covid),
|
|
79
|
+
),
|
|
80
|
+
}
|
|
81
|
+
supported_languages = ("en_US", "km", "th")
|
|
82
|
+
|
|
83
|
+
def __init__(self, *args, **kwargs):
|
|
84
|
+
InternationalHolidays.__init__(self)
|
|
85
|
+
ThaiCalendarHolidays.__init__(self, KHMER_CALENDAR)
|
|
86
|
+
super().__init__(*args, **kwargs)
|
|
87
|
+
|
|
88
|
+
def _populate(self, year):
|
|
89
|
+
# Available post-Independence from 1993 afterwards
|
|
90
|
+
if year <= 1992:
|
|
91
|
+
return None
|
|
92
|
+
|
|
93
|
+
super()._populate(year)
|
|
94
|
+
|
|
95
|
+
# Fixed Holidays
|
|
96
|
+
|
|
97
|
+
# ទិវាចូលឆ្នាំសាកល
|
|
98
|
+
# Status: In-Use.
|
|
99
|
+
|
|
100
|
+
# International New Year Day.
|
|
101
|
+
self._add_new_years_day(tr("ទិវាចូលឆ្នាំសាកល"))
|
|
102
|
+
|
|
103
|
+
# ទិវាជ័យជម្នះលើរបបប្រល័យពូជសាសន៍
|
|
104
|
+
# Status: In-Use.
|
|
105
|
+
# Commemorates the end of the Khmer Rouge regime in 1979
|
|
106
|
+
|
|
107
|
+
# Day of Victory over the Genocidal Regime.
|
|
108
|
+
self._add_holiday(tr("ទិវាជ័យជម្នះលើរបបប្រល័យពូជសាសន៍"), JAN, 7)
|
|
109
|
+
|
|
110
|
+
# ទិវាអន្តរជាតិនារី
|
|
111
|
+
# Status: In-Use.
|
|
112
|
+
|
|
113
|
+
# International Women's Rights Day
|
|
114
|
+
self._add_womens_day(tr("ទិវាអន្តរជាតិនារី"))
|
|
115
|
+
|
|
116
|
+
# ពិធីបុណ្យចូលឆ្នាំថ្មីប្រពៃណីជាតិ
|
|
117
|
+
# Status: In-Use.
|
|
118
|
+
# Usually falls on April 13th except for 2017-2018 and 2021-2023
|
|
119
|
+
# for years 2001-2050.
|
|
120
|
+
|
|
121
|
+
if year != 2020:
|
|
122
|
+
# Khmer New Year's Day
|
|
123
|
+
sangkranta = tr("ពិធីបុណ្យចូលឆ្នាំថ្មីប្រពៃណីជាតិ")
|
|
124
|
+
sangkranta_years_apr14 = {2017, 2018, 2021, 2022, 2023}
|
|
125
|
+
dt = self._add_holiday(sangkranta, APR, 14 if year in sangkranta_years_apr14 else 13)
|
|
126
|
+
self._add_holiday(sangkranta, dt + td(days=+1))
|
|
127
|
+
self._add_holiday(sangkranta, dt + td(days=+2))
|
|
128
|
+
|
|
129
|
+
# ទិវាពលកម្មអន្តរជាតិ
|
|
130
|
+
# Status: In-Use.
|
|
131
|
+
|
|
132
|
+
# International Labor Day
|
|
133
|
+
self._add_labor_day(tr("ទិវាពលកម្មអន្តរជាតិ"))
|
|
134
|
+
|
|
135
|
+
# ព្រះរាជពិធីបុណ្យចម្រើនព្រះជន្ម ព្រះករុណា ព្រះបាទសម្តេចព្រះបរមនាថ
|
|
136
|
+
# នរោត្តម សីហមុនី
|
|
137
|
+
# Status: In-Use.
|
|
138
|
+
# Assumed to start in 2005. Was celebrated for 3 days until 2020.
|
|
139
|
+
|
|
140
|
+
if year >= 2005:
|
|
141
|
+
king_sihamoni_bday = tr(
|
|
142
|
+
# Birthday of His Majesty Preah Bat Samdech Preah Boromneath
|
|
143
|
+
# NORODOM SIHAMONI, King of Cambodia
|
|
144
|
+
"ព្រះរាជពិធីបុណ្យចម្រើនព្រះជន្ម ព្រះករុណា "
|
|
145
|
+
"ព្រះបាទសម្តេចព្រះបរមនាថ នរោត្តម សីហមុនី"
|
|
146
|
+
)
|
|
147
|
+
dt = self._add_holiday(king_sihamoni_bday, MAY, 14)
|
|
148
|
+
if year <= 2019:
|
|
149
|
+
self._add_holiday(king_sihamoni_bday, MAY, 13)
|
|
150
|
+
self._add_holiday(king_sihamoni_bday, MAY, 15)
|
|
151
|
+
|
|
152
|
+
# ទិវាជាតិនៃការចងចាំ
|
|
153
|
+
# Status: Defunct.
|
|
154
|
+
# Active between 2018-2019 as Public Holiday.
|
|
155
|
+
# Was ទិវាចងកំហឹង (National Day of Anger) between 1983-2000.
|
|
156
|
+
# Its celebration was put onhold by UN administration with
|
|
157
|
+
# its name changed to present one in 2001.
|
|
158
|
+
|
|
159
|
+
if 2018 <= year <= 2019:
|
|
160
|
+
# National Day of Remembrance
|
|
161
|
+
self._add_holiday(tr("ទិវាជាតិនៃការចងចាំ"), MAY, 20)
|
|
162
|
+
|
|
163
|
+
# ទិវាកុមារអន្តរជាតិ
|
|
164
|
+
# Status: Defunct.
|
|
165
|
+
# Assumed to start in 1993, defunct from 2020 onwards.
|
|
166
|
+
|
|
167
|
+
if year <= 2019:
|
|
168
|
+
# International Children Day
|
|
169
|
+
self._add_childrens_day(tr("ទិវាកុមារអន្តរជាតិ"))
|
|
170
|
+
|
|
171
|
+
# ព្រះរាជពិធីបុណ្យចម្រើនព្រះជន្ម សម្តេចព្រះមហាក្សត្រី ព្រះវររាជមាតា
|
|
172
|
+
# នរោត្តម មុនិនាថ សីហនុ
|
|
173
|
+
# Status: In-Use.
|
|
174
|
+
# Assumed to start in 1994. A public holiday since 2015 at least.
|
|
175
|
+
|
|
176
|
+
if year >= 1994:
|
|
177
|
+
self._add_holiday(
|
|
178
|
+
# Birthday of Her Majesty the Queen-Mother NORODOM MONINEATH
|
|
179
|
+
# SIHANOUK of Cambodia
|
|
180
|
+
tr(
|
|
181
|
+
"ព្រះរាជពិធីបុណ្យចម្រើនព្រះជន្ម សម្តេចព្រះមហាក្សត្រី "
|
|
182
|
+
"ព្រះវររាជមាតា នរោត្តម មុនិនាថ សីហនុ"
|
|
183
|
+
),
|
|
184
|
+
JUN,
|
|
185
|
+
18,
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
# ទិវាប្រកាសរដ្ឋធម្មនុញ្ញ
|
|
189
|
+
# Status: In-Use.
|
|
190
|
+
# Starts in 1993
|
|
191
|
+
|
|
192
|
+
# Constitution Day
|
|
193
|
+
self._add_holiday(tr("ទិវាប្រកាសរដ្ឋធម្មនុញ្ញ"), SEP, 24)
|
|
194
|
+
|
|
195
|
+
# ទិវាប្រារព្ឋពិធីគោរពព្រះវិញ្ញាណក្ខន្ឋ ព្រះករុណា ព្រះបាទសម្តេចព្រះ
|
|
196
|
+
# នរោត្តម សីហនុ ព្រះមហាវីរក្សត្រ ព្រះវររាជបិតាឯករាជ្យ បូរណភាពទឹកដី
|
|
197
|
+
# និងឯកភាពជាតិខ្មែរ ព្រះបរមរតនកោដ្ឋ
|
|
198
|
+
# Status: In-Use.
|
|
199
|
+
# Starts in 2012.
|
|
200
|
+
|
|
201
|
+
if year >= 2012:
|
|
202
|
+
self._add_holiday(
|
|
203
|
+
# Mourning Day of the Late King-Father
|
|
204
|
+
# NORODOM SIHANOUK of Cambodia
|
|
205
|
+
tr(
|
|
206
|
+
"ទិវាប្រារព្ឋពិធីគោរពព្រះវិញ្ញាណក្ខន្ឋ ព្រះករុណា "
|
|
207
|
+
"ព្រះបាទសម្តេចព្រះ នរោត្តម សីហនុ ព្រះមហាវីរក្សត្រ "
|
|
208
|
+
"ព្រះវររាជបិតាឯករាជ្យ បូរណភាពទឹកដី និងឯកភាពជាតិខ្មែរ "
|
|
209
|
+
"ព្រះបរមរតនកោដ្ឋ"
|
|
210
|
+
),
|
|
211
|
+
OCT,
|
|
212
|
+
15,
|
|
213
|
+
)
|
|
214
|
+
|
|
215
|
+
# ទិវារំលឹកសន្ធិសញ្ញាសន្តិភាពទីក្រុងប៉ារីស
|
|
216
|
+
# Status: Defunct.
|
|
217
|
+
# Assumed to start in 1993, defunct from 2020 onwards.
|
|
218
|
+
|
|
219
|
+
if year <= 2019:
|
|
220
|
+
self._add_holiday(
|
|
221
|
+
# Paris Peace Agreement's Day
|
|
222
|
+
tr("ទិវារំលឹកសន្ធិសញ្ញាសន្តិភាពទីក្រុងប៉ារីស"),
|
|
223
|
+
OCT,
|
|
224
|
+
23,
|
|
225
|
+
)
|
|
226
|
+
|
|
227
|
+
# ព្រះរាជពិធីគ្រងព្រះបរមរាជសម្បត្តិ របស់ ព្រះករុណា
|
|
228
|
+
# ព្រះបាទសម្តេចព្រះបរមនាថ នរោត្តម សីហមុនី
|
|
229
|
+
# ព្រះមហាក្សត្រនៃព្រះរាជាណាចក្រកម្ពុជា
|
|
230
|
+
# Status: In-Use.
|
|
231
|
+
# Starts in 2004.
|
|
232
|
+
|
|
233
|
+
if year >= 2004:
|
|
234
|
+
self._add_holiday(
|
|
235
|
+
# Coronation Day of His Majesty Preah Bat Samdech Preah
|
|
236
|
+
# Boromneath NORODOM SIHAMONI, King of Cambodia
|
|
237
|
+
tr(
|
|
238
|
+
"ព្រះរាជពិធីគ្រងព្រះបរមរាជសម្បត្តិ របស់ ព្រះករុណា "
|
|
239
|
+
"ព្រះបាទសម្តេចព្រះបរមនាថ នរោត្តម សីហមុនី "
|
|
240
|
+
"ព្រះមហាក្សត្រនៃព្រះរាជាណាចក្រកម្ពុជា"
|
|
241
|
+
),
|
|
242
|
+
OCT,
|
|
243
|
+
29,
|
|
244
|
+
)
|
|
245
|
+
|
|
246
|
+
# ពិធីបុណ្យឯករាជ្យជាតិ
|
|
247
|
+
# Status: In-Use.
|
|
248
|
+
# Starts in 1953
|
|
249
|
+
|
|
250
|
+
# National Independence Day
|
|
251
|
+
self._add_holiday(tr("ពិធីបុណ្យឯករាជ្យជាតិ"), NOV, 9)
|
|
252
|
+
|
|
253
|
+
# ទិវាសិទ្ធិមនុស្សអន្តរជាតិ
|
|
254
|
+
# Status: Defunct.
|
|
255
|
+
# Assumed to start in 1993, defunct from 2020 onwards.
|
|
256
|
+
|
|
257
|
+
if year <= 2019:
|
|
258
|
+
# International Human Rights Day
|
|
259
|
+
self._add_holiday(tr("ទិវាសិទ្ធិមនុស្សអន្តរជាតិ"), DEC, 10)
|
|
260
|
+
|
|
261
|
+
# Cambodian Lunar Calendar Holidays
|
|
262
|
+
# See `_ThaiLunisolar` in holidays/utils.py for more details.
|
|
263
|
+
# Cambodian Lunar Calendar Holidays only work from 1941 to 2057.
|
|
264
|
+
|
|
265
|
+
# ពិធីបុណ្យមាឃបូជា
|
|
266
|
+
# Status: Defunct.
|
|
267
|
+
# 15th Waxing Day of Month 3.
|
|
268
|
+
# Defunct from 2020 onwards.
|
|
269
|
+
|
|
270
|
+
if year <= 2019:
|
|
271
|
+
# Meak Bochea Day
|
|
272
|
+
self._add_makha_bucha(tr("ពិធីបុណ្យមាឃបូជា"))
|
|
273
|
+
|
|
274
|
+
# ពិធីបុណ្យវិសាខបូជា
|
|
275
|
+
# Status: In-Use.
|
|
276
|
+
# 15th Waxing Day of Month 6.
|
|
277
|
+
# This utilizes Thai calendar as a base, though are calculated to
|
|
278
|
+
# always happen in the Traditional Visakhamas month (May).
|
|
279
|
+
|
|
280
|
+
# Visaka Bochea Day
|
|
281
|
+
self._add_visakha_bucha(tr("ពិធីបុណ្យវិសាខបូជា"))
|
|
282
|
+
|
|
283
|
+
# ព្រះរាជពិធីច្រត់ព្រះនង្គ័ល
|
|
284
|
+
# Status: In-Use.
|
|
285
|
+
# 4th Waning Day of Month 6.
|
|
286
|
+
# Unlike Thai ones, Cambodian Royal Ploughing Ceremony is always fixed.
|
|
287
|
+
|
|
288
|
+
# Royal Ploughing Ceremony
|
|
289
|
+
self._add_preah_neangkoal(tr("ព្រះរាជពិធីច្រត់ព្រះនង្គ័ល"))
|
|
290
|
+
|
|
291
|
+
# ពិធីបុណ្យភ្ផុំបិណ្ឌ
|
|
292
|
+
# Status: In-Use.
|
|
293
|
+
# 14th Waning Day of Month 10 - 1st Waxing Day of Month 11.
|
|
294
|
+
# The 3rd day is added as a public holiday from 2017 onwards.
|
|
295
|
+
|
|
296
|
+
# Pchum Ben Day
|
|
297
|
+
pchum_ben = tr("ពិធីបុណ្យភ្ផុំបិណ្ឌ")
|
|
298
|
+
pchum_ben_date = self._add_pchum_ben(pchum_ben)
|
|
299
|
+
if pchum_ben_date:
|
|
300
|
+
self._add_holiday(pchum_ben, pchum_ben_date + td(days=-1))
|
|
301
|
+
if year >= 2017:
|
|
302
|
+
self._add_holiday(pchum_ben, pchum_ben_date + td(days=+1))
|
|
303
|
+
|
|
304
|
+
# ព្រះរាជពិធីបុណ្យអុំទូក បណ្តែតប្រទីប និងសំពះព្រះខែអកអំបុក
|
|
305
|
+
# Status: In-Use.
|
|
306
|
+
# 14th Waxing Day of Month 12 - 1st Waning Day of Month 12.
|
|
307
|
+
|
|
308
|
+
bon_om_touk = tr(
|
|
309
|
+
# Water Festival
|
|
310
|
+
"ព្រះរាជពិធីបុណ្យអុំទូក បណ្តែតប្រទីប និងសំពះព្រះខែអកអំបុក"
|
|
311
|
+
)
|
|
312
|
+
bon_om_touk_date = self._add_loy_krathong(bon_om_touk)
|
|
313
|
+
if bon_om_touk_date:
|
|
314
|
+
self._add_holiday(bon_om_touk, bon_om_touk_date + td(days=-1))
|
|
315
|
+
self._add_holiday(bon_om_touk, bon_om_touk_date + td(days=+1))
|
|
316
|
+
|
|
317
|
+
|
|
318
|
+
class KH(Cambodia):
|
|
319
|
+
pass
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
class KHM(Cambodia):
|
|
323
|
+
pass
|
holidays/countries/cameroon.py
CHANGED
|
@@ -11,17 +11,13 @@
|
|
|
11
11
|
|
|
12
12
|
from datetime import timedelta as td
|
|
13
13
|
|
|
14
|
-
from holidays.calendars import
|
|
15
|
-
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP
|
|
16
|
-
from holidays.constants import OCT, NOV, DEC
|
|
14
|
+
from holidays.calendars import _CustomIslamicCalendar
|
|
15
|
+
from holidays.constants import JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
|
|
17
16
|
from holidays.holiday_base import HolidayBase
|
|
18
|
-
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays
|
|
19
|
-
from holidays.holiday_groups import IslamicHolidays
|
|
17
|
+
from holidays.holiday_groups import ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
20
18
|
|
|
21
19
|
|
|
22
|
-
class Cameroon(
|
|
23
|
-
HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays
|
|
24
|
-
):
|
|
20
|
+
class Cameroon(HolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays):
|
|
25
21
|
"""
|
|
26
22
|
References:
|
|
27
23
|
- https://en.wikipedia.org/wiki/Public_holidays_in_Cameroon
|
|
@@ -94,9 +90,7 @@ class Cameroon(
|
|
|
94
90
|
while obs_date in observed_dates:
|
|
95
91
|
obs_date += td(days=+1)
|
|
96
92
|
for hol_name in self.get_list(dt):
|
|
97
|
-
observed_dates.add(
|
|
98
|
-
self._add_holiday("%s (Observed)" % hol_name, obs_date)
|
|
99
|
-
)
|
|
93
|
+
observed_dates.add(self._add_holiday("%s (Observed)" % hol_name, obs_date))
|
|
100
94
|
|
|
101
95
|
# observed holidays special cases
|
|
102
96
|
if year == 2007:
|
|
@@ -111,79 +105,79 @@ class CMR(Cameroon):
|
|
|
111
105
|
pass
|
|
112
106
|
|
|
113
107
|
|
|
114
|
-
class CameroonIslamicCalendar(
|
|
108
|
+
class CameroonIslamicCalendar(_CustomIslamicCalendar):
|
|
115
109
|
EID_AL_ADHA_DATES = {
|
|
116
|
-
2001: (
|
|
117
|
-
2002: (
|
|
118
|
-
2003: (
|
|
119
|
-
2004: (
|
|
120
|
-
2005: (
|
|
110
|
+
2001: (MAR, 6),
|
|
111
|
+
2002: (FEB, 23),
|
|
112
|
+
2003: (FEB, 12),
|
|
113
|
+
2004: (FEB, 2),
|
|
114
|
+
2005: (JAN, 21),
|
|
121
115
|
2006: ((JAN, 10), (DEC, 31)),
|
|
122
|
-
2007: (
|
|
123
|
-
2008: (
|
|
124
|
-
2009: (
|
|
125
|
-
2010: (
|
|
126
|
-
2011: (
|
|
127
|
-
2012: (
|
|
128
|
-
2013: (
|
|
129
|
-
2014: (
|
|
130
|
-
2015: (
|
|
131
|
-
2016: (
|
|
132
|
-
2017: (
|
|
133
|
-
2018: (
|
|
134
|
-
2019: (
|
|
135
|
-
2020: (
|
|
136
|
-
2021: (
|
|
137
|
-
2022: (
|
|
116
|
+
2007: (DEC, 20),
|
|
117
|
+
2008: (DEC, 9),
|
|
118
|
+
2009: (NOV, 28),
|
|
119
|
+
2010: (NOV, 17),
|
|
120
|
+
2011: (NOV, 7),
|
|
121
|
+
2012: (OCT, 26),
|
|
122
|
+
2013: (OCT, 15),
|
|
123
|
+
2014: (OCT, 5),
|
|
124
|
+
2015: (SEP, 24),
|
|
125
|
+
2016: (SEP, 13),
|
|
126
|
+
2017: (SEP, 2),
|
|
127
|
+
2018: (AUG, 21),
|
|
128
|
+
2019: (AUG, 11),
|
|
129
|
+
2020: (JUL, 31),
|
|
130
|
+
2021: (JUL, 20),
|
|
131
|
+
2022: (JUL, 9),
|
|
138
132
|
}
|
|
139
133
|
|
|
140
134
|
EID_AL_FITR_DATES = {
|
|
141
|
-
2001: (
|
|
142
|
-
2002: (
|
|
143
|
-
2003: (
|
|
144
|
-
2004: (
|
|
145
|
-
2005: (
|
|
146
|
-
2006: (
|
|
147
|
-
2007: (
|
|
148
|
-
2008: (
|
|
149
|
-
2009: (
|
|
150
|
-
2010: (
|
|
151
|
-
2011: (
|
|
152
|
-
2012: (
|
|
153
|
-
2013: (
|
|
154
|
-
2014: (
|
|
155
|
-
2015: (
|
|
156
|
-
2016: (
|
|
157
|
-
2017: (
|
|
158
|
-
2018: (
|
|
159
|
-
2019: (
|
|
160
|
-
2020: (
|
|
161
|
-
2021: (
|
|
162
|
-
2022: (
|
|
163
|
-
2023: (
|
|
135
|
+
2001: (DEC, 17),
|
|
136
|
+
2002: (DEC, 6),
|
|
137
|
+
2003: (NOV, 26),
|
|
138
|
+
2004: (NOV, 14),
|
|
139
|
+
2005: (NOV, 4),
|
|
140
|
+
2006: (OCT, 24),
|
|
141
|
+
2007: (OCT, 13),
|
|
142
|
+
2008: (OCT, 2),
|
|
143
|
+
2009: (SEP, 21),
|
|
144
|
+
2010: (SEP, 10),
|
|
145
|
+
2011: (AUG, 31),
|
|
146
|
+
2012: (AUG, 19),
|
|
147
|
+
2013: (AUG, 8),
|
|
148
|
+
2014: (JUL, 28),
|
|
149
|
+
2015: (JUL, 18),
|
|
150
|
+
2016: (JUL, 7),
|
|
151
|
+
2017: (JUN, 26),
|
|
152
|
+
2018: (JUN, 15),
|
|
153
|
+
2019: (JUN, 4),
|
|
154
|
+
2020: (MAY, 24),
|
|
155
|
+
2021: (MAY, 13),
|
|
156
|
+
2022: (MAY, 2),
|
|
157
|
+
2023: (APR, 21),
|
|
164
158
|
}
|
|
165
159
|
|
|
166
160
|
MAWLID_DATES = {
|
|
167
|
-
2001: (
|
|
168
|
-
2002: (
|
|
169
|
-
2003: (
|
|
170
|
-
2004: (
|
|
171
|
-
2005: (
|
|
172
|
-
2006: (
|
|
173
|
-
2007: (
|
|
174
|
-
2008: (
|
|
175
|
-
2009: (
|
|
176
|
-
2010: (
|
|
177
|
-
2011: (
|
|
178
|
-
2012: (
|
|
179
|
-
2013: (
|
|
180
|
-
2014: (
|
|
161
|
+
2001: (JUN, 4),
|
|
162
|
+
2002: (MAY, 24),
|
|
163
|
+
2003: (MAY, 14),
|
|
164
|
+
2004: (MAY, 2),
|
|
165
|
+
2005: (APR, 21),
|
|
166
|
+
2006: (APR, 11),
|
|
167
|
+
2007: (MAR, 31),
|
|
168
|
+
2008: (MAR, 20),
|
|
169
|
+
2009: (MAR, 9),
|
|
170
|
+
2010: (FEB, 26),
|
|
171
|
+
2011: (FEB, 16),
|
|
172
|
+
2012: (FEB, 5),
|
|
173
|
+
2013: (JAN, 24),
|
|
174
|
+
2014: (JAN, 14),
|
|
181
175
|
2015: ((JAN, 3), (DEC, 24)),
|
|
182
|
-
2016: (
|
|
183
|
-
2017: (
|
|
184
|
-
2018: (
|
|
185
|
-
2019: (
|
|
186
|
-
2020: (
|
|
187
|
-
2021: (
|
|
188
|
-
2022: (
|
|
176
|
+
2016: (DEC, 12),
|
|
177
|
+
2017: (DEC, 1),
|
|
178
|
+
2018: (NOV, 21),
|
|
179
|
+
2019: (NOV, 10),
|
|
180
|
+
2020: (OCT, 29),
|
|
181
|
+
2021: (OCT, 19),
|
|
182
|
+
2022: (OCT, 8),
|
|
189
183
|
}
|