Skip to content

Commit e09311e

Browse files
Add Democratic Republic of the Congo holidays (#2702)
Signed-off-by: Prateekshit Jaiswal <[email protected]> Co-authored-by: Prateekshit <[email protected]>
1 parent 11f7176 commit e09311e

File tree

8 files changed

+1459
-1
lines changed

8 files changed

+1459
-1
lines changed

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ and detailed information.
105105

106106
## Available Countries
107107

108-
We currently support 219 country codes. The standard way to refer to a country is by using its [ISO
108+
We currently support 220 country codes. The standard way to refer to a country is by using its [ISO
109109
3166-1 alpha-2 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes), the same used
110110
for domain names, and for a subdivision its [ISO 3166-2
111111
code](https://en.wikipedia.org/wiki/ISO_3166-2). Some countries have common or foreign names or
@@ -546,6 +546,13 @@ any) in brackets, available languages and additional holiday categories. All cou
546546
<td></td>
547547
</tr>
548548
<tr>
549+
<td>DR Congo</td>
550+
<td>CD</td>
551+
<td></td>
552+
<td>en_US, <strong>fr</strong></td>
553+
<td></td>
554+
</tr>
555+
<tr>
549556
<td>Ecuador</td>
550557
<td>EC</td>
551558
<td></td>

holidays/countries/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
from holidays.countries.djibouti import Djibouti, DJ, DJI
7070
from holidays.countries.dominica import Dominica, DM, DMA
7171
from holidays.countries.dominican_republic import DominicanRepublic, DO, DOM
72+
from holidays.countries.dr_congo import DRCongo, CD, COD
7273
from holidays.countries.ecuador import Ecuador, EC, ECU
7374
from holidays.countries.egypt import Egypt, EG, EGY
7475
from holidays.countries.el_salvador import ElSalvador, SV, SLV

holidays/countries/dr_congo.py

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
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 <[email protected]> (c) 2017-2023
9+
# ryanss <[email protected]> (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 SUN
16+
from holidays.groups import ChristianHolidays, InternationalHolidays
17+
from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_PREV_SAT
18+
19+
20+
class DRCongo(ObservedHolidayBase, ChristianHolidays, InternationalHolidays):
21+
"""Democratic Republic of the Congo holidays.
22+
23+
References:
24+
* <https://en.wikipedia.org/wiki/Public_holidays_in_the_Democratic_Republic_of_the_Congo>
25+
* [Ordonnance n° 79-154](https://web.archive.org/web/20220329181351/http://www.leganet.cd/Legislation/DroitSocial/O.79.154.23.06.1979.htm)
26+
* [Ordonnance n° 14/010](https://web.archive.org/web/20230419184344/http://leganet.cd/Legislation/Divers/Ordonnance.14.10.14.mai.2014.htm)
27+
* [Ordonnance n° 23-042](https://web.archive.org/web/20250113230411/http://www.droitcongolais.info/files/143.03.23_Ordonnance-du-30-mars-2023_jours-feries.pdf)
28+
* [Loi n° 009-2002](https://web.archive.org/web/20250104233847/https://www.leganet.cd/Legislation/Droit%20administratif/Urbanismevoiries/Div/L.009.05.08.2002.htm)
29+
"""
30+
31+
country = "CD"
32+
default_language = "fr"
33+
# %s (observed).
34+
observed_label = tr("%s (observé)")
35+
supported_languages = ("en_US", "fr")
36+
# Ordonnance n° 79-154.
37+
start_year = 1980
38+
weekend = {SUN}
39+
40+
def __init__(self, *args, **kwargs) -> None:
41+
ChristianHolidays.__init__(self)
42+
InternationalHolidays.__init__(self)
43+
kwargs.setdefault("observed_rule", SUN_TO_PREV_SAT)
44+
super().__init__(*args, **kwargs)
45+
46+
def _populate_public_holidays(self):
47+
# New Year's Day.
48+
name = tr("Nouvel an")
49+
self._add_new_years_day(name)
50+
self._add_observed(self._next_year_new_years_day, name=name)
51+
52+
# Established on May 10th, 2014 via Ordonnance n° 14/010.
53+
if self._year >= 2015:
54+
# Martyrs' Day.
55+
self._add_observed(self._add_holiday_jan_4(tr("Martyrs de l'indépendance")))
56+
57+
self._add_observed(
58+
# National Hero Laurent Désiré Kabila Day.
59+
self._add_holiday_jan_16(tr("Journée du héros national Laurent Désiré Kabila"))
60+
)
61+
62+
self._add_observed(
63+
# National Hero Patrice Emery Lumumba Day.
64+
self._add_holiday_jan_17(tr("Journée du héros national Patrice Emery Lumumba"))
65+
)
66+
67+
# Established on March 30th, 2023 via Ordonnance n° 23-042.
68+
if self._year >= 2023:
69+
self._add_observed(
70+
self._add_holiday_apr_6(
71+
# Day of the Struggle of Simon Kimbangu and African Consciousness.
72+
tr("Journée du combat de Simon Kimbangu et de la conscience africaine")
73+
)
74+
)
75+
76+
# Labor Day.
77+
self._add_observed(self._add_labor_day(tr("Fête du travail")))
78+
79+
# Renamed on May 10th, 2014 via Ordonnance n° 14/010.
80+
if self._year >= 2014:
81+
self._add_observed(
82+
# Revolution and Armed Forces Day.
83+
self._add_holiday_may_17(tr("Journée de la Révolution et des Forces Armées"))
84+
)
85+
else:
86+
# Armed Forces Day.
87+
self._add_observed(self._add_holiday_nov_17(tr("Fête des Forces armées zaïroises")))
88+
89+
# Removed on May 10th, 2014 via Ordonnance n° 14/010.
90+
if self._year <= 2013:
91+
self._add_observed(
92+
self._add_holiday_may_20(
93+
# Anniversary of the Popular Movement of the Revolution.
94+
tr("Anniversaire du Mouvement populaire de la révolution")
95+
)
96+
)
97+
98+
self._add_observed(
99+
self._add_holiday_jun_24(
100+
# Anniversary of the New Revolutionary Constitution.
101+
tr("Anniversaire de la nouvelle Constitution révolutionnaire")
102+
)
103+
)
104+
105+
# Independence Day.
106+
self._add_observed(self._add_holiday_jun_30(tr("Journée de l'indépendance")))
107+
108+
# Parents' Day.
109+
self._add_observed(self._add_holiday_aug_1(tr("Fête des parents")))
110+
111+
if self._year >= 2024:
112+
self._add_observed(
113+
# Congolese Genocide Memorial Day.
114+
self._add_holiday_aug_2(tr("Journée commémorative du génocide Congolais"))
115+
)
116+
117+
# Removed on May 10th, 2014 via Ordonnance n° 14/010.
118+
if self._year <= 2013:
119+
# Youth Day.
120+
self._add_observed(self._add_holiday_oct_14(tr("Journée de la Jeunesse")))
121+
122+
self._add_observed(
123+
# Anniversary of the Country's Name Change.
124+
self._add_holiday_oct_27(tr("Anniversaire du changement du nom de notre Pays"))
125+
)
126+
127+
# Anniversary of the New Regime.
128+
self._add_observed(self._add_holiday_nov_24(tr("Anniversaire du nouveau régime")))
129+
130+
# Christmas Day.
131+
self._add_observed(self._add_christmas_day(tr("Noël")))
132+
133+
134+
class CD(DRCongo):
135+
pass
136+
137+
138+
class COD(DRCongo):
139+
pass
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
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 <[email protected]> (c) 2017-2023
9+
# ryanss <[email protected]> (c) 2014-2017
10+
# Website: https://github.com/vacanza/holidays
11+
# License: MIT (see LICENSE file)
12+
#
13+
# Democratic Republic of the Congo holidays en_US localization.
14+
#
15+
msgid ""
16+
msgstr ""
17+
"Project-Id-Version: Holidays 0.77\n"
18+
"POT-Creation-Date: 2025-07-05 21:01+0530\n"
19+
"PO-Revision-Date: 2025-07-05 21:01+0530\n"
20+
"Last-Translator: Prateekshit Jaiswal <[email protected]>\n"
21+
"Language-Team: Holidays Localization Team\n"
22+
"Language: en_US\n"
23+
"MIME-Version: 1.0\n"
24+
"Content-Type: text/plain; charset=UTF-8\n"
25+
"Content-Transfer-Encoding: 8bit\n"
26+
"Generated-By: Lingva 5.0.6\n"
27+
"X-Source-Language: fr\n"
28+
29+
#. %s (observed).
30+
#, c-format
31+
msgid "%s (observé)"
32+
msgstr "%s (observed)"
33+
34+
#. New Year's Day.
35+
msgid "Nouvel an"
36+
msgstr "New Year's Day"
37+
38+
#. Martyrs' Day.
39+
msgid "Martyrs de l'indépendance"
40+
msgstr "Martyrs' Day"
41+
42+
#. National Hero Laurent Désiré Kabila Day.
43+
msgid "Journée du héros national Laurent Désiré Kabila"
44+
msgstr "National Hero Laurent Désiré Kabila Day"
45+
46+
#. National Hero Patrice Emery Lumumba Day.
47+
msgid "Journée du héros national Patrice Emery Lumumba"
48+
msgstr "National Hero Patrice Emery Lumumba Day"
49+
50+
#. Day of the Struggle of Simon Kimbangu and African Consciousness.
51+
msgid "Journée du combat de Simon Kimbangu et de la conscience africaine"
52+
msgstr "Day of the Struggle of Simon Kimbangu and African Consciousness"
53+
54+
#. Labor Day.
55+
msgid "Fête du travail"
56+
msgstr "Labor Day"
57+
58+
#. Revolution and Armed Forces Day.
59+
msgid "Journée de la Révolution et des Forces Armées"
60+
msgstr "Revolution and Armed Forces Day"
61+
62+
#. Armed Forces Day.
63+
msgid "Fête des Forces armées zaïroises"
64+
msgstr "Armed Forces Day"
65+
66+
#. Anniversary of the Popular Movement of the Revolution.
67+
msgid "Anniversaire du Mouvement populaire de la révolution"
68+
msgstr "Anniversary of the Popular Movement of the Revolution"
69+
70+
#. Anniversary of the New Revolutionary Constitution.
71+
msgid "Anniversaire de la nouvelle Constitution révolutionnaire"
72+
msgstr "Anniversary of the New Revolutionary Constitution"
73+
74+
#. Independence Day.
75+
msgid "Journée de l'indépendance"
76+
msgstr "Independence Day"
77+
78+
#. Parents' Day.
79+
msgid "Fête des parents"
80+
msgstr "Parents' Day"
81+
82+
#. Congolese Genocide Memorial Day.
83+
msgid "Journée commémorative du génocide Congolais"
84+
msgstr "Congolese Genocide Memorial Day"
85+
86+
#. Youth Day.
87+
msgid "Journée de la Jeunesse"
88+
msgstr "Youth Day"
89+
90+
#. Anniversary of the Country's Name Change.
91+
msgid "Anniversaire du changement du nom de notre Pays"
92+
msgstr "Anniversary of the Country's Name Change"
93+
94+
#. Anniversary of the New Regime.
95+
msgid "Anniversaire du nouveau régime"
96+
msgstr "Anniversary of the New Regime"
97+
98+
#. Christmas Day.
99+
msgid "Noël"
100+
msgstr "Christmas Day"

holidays/locale/fr/LC_MESSAGES/CD.po

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
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 <[email protected]> (c) 2017-2023
9+
# ryanss <[email protected]> (c) 2014-2017
10+
# Website: https://github.com/vacanza/holidays
11+
# License: MIT (see LICENSE file)
12+
#
13+
# Democratic Republic of the Congo holidays.
14+
#
15+
msgid ""
16+
msgstr ""
17+
"Project-Id-Version: Holidays 0.77\n"
18+
"POT-Creation-Date: 2025-07-05 21:01+0530\n"
19+
"PO-Revision-Date: 2025-07-05 21:01+0530\n"
20+
"Last-Translator: Prateekshit Jaiswal <[email protected]>\n"
21+
"Language-Team: Holidays Localization Team\n"
22+
"Language: fr\n"
23+
"MIME-Version: 1.0\n"
24+
"Content-Type: text/plain; charset=UTF-8\n"
25+
"Content-Transfer-Encoding: 8bit\n"
26+
"Generated-By: Lingva 5.0.6\n"
27+
"X-Source-Language: fr\n"
28+
29+
#. %s (observed).
30+
#, c-format
31+
msgid "%s (observé)"
32+
msgstr ""
33+
34+
#. New Year's Day.
35+
msgid "Nouvel an"
36+
msgstr ""
37+
38+
#. Martyrs' Day.
39+
msgid "Martyrs de l'indépendance"
40+
msgstr ""
41+
42+
#. National Hero Laurent Désiré Kabila Day.
43+
msgid "Journée du héros national Laurent Désiré Kabila"
44+
msgstr ""
45+
46+
#. National Hero Patrice Emery Lumumba Day.
47+
msgid "Journée du héros national Patrice Emery Lumumba"
48+
msgstr ""
49+
50+
#. Day of the Struggle of Simon Kimbangu and African Consciousness.
51+
msgid "Journée du combat de Simon Kimbangu et de la conscience africaine"
52+
msgstr ""
53+
54+
#. Labor Day.
55+
msgid "Fête du travail"
56+
msgstr ""
57+
58+
#. Revolution and Armed Forces Day.
59+
msgid "Journée de la Révolution et des Forces Armées"
60+
msgstr ""
61+
62+
#. Armed Forces Day.
63+
msgid "Fête des Forces armées zaïroises"
64+
msgstr ""
65+
66+
#. Anniversary of the Popular Movement of the Revolution.
67+
msgid "Anniversaire du Mouvement populaire de la révolution"
68+
msgstr ""
69+
70+
#. Anniversary of the New Revolutionary Constitution.
71+
msgid "Anniversaire de la nouvelle Constitution révolutionnaire"
72+
msgstr ""
73+
74+
#. Independence Day.
75+
msgid "Journée de l'indépendance"
76+
msgstr ""
77+
78+
#. Parents' Day.
79+
msgid "Fête des parents"
80+
msgstr ""
81+
82+
#. Congolese Genocide Memorial Day.
83+
msgid "Journée commémorative du génocide Congolais"
84+
msgstr ""
85+
86+
#. Youth Day.
87+
msgid "Journée de la Jeunesse"
88+
msgstr ""
89+
90+
#. Anniversary of the Country's Name Change.
91+
msgid "Anniversaire du changement du nom de notre Pays"
92+
msgstr ""
93+
94+
#. Anniversary of the New Regime.
95+
msgid "Anniversaire du nouveau régime"
96+
msgstr ""
97+
98+
#. Christmas Day.
99+
msgid "Noël"
100+
msgstr ""

holidays/registry.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
"djibouti": ("Djibouti", "DJ", "DJI"),
7878
"dominica": ("Dominica", "DM", "DMA"),
7979
"dominican_republic": ("DominicanRepublic", "DO", "DOM"),
80+
"dr_congo": ("DRCongo", "CD", "COD"),
8081
"ecuador": ("Ecuador", "EC", "ECU"),
8182
"egypt": ("Egypt", "EG", "EGY"),
8283
"jordan": ("Jordan", "JO", "JOR"),

0 commit comments

Comments
 (0)