Repository: vacanza/holidays
Pull request #2110 (2024-11-06 21:54:27)

Add Portugal subdivision aliases
<!--
  Thanks for contributing to holidays!
-->

## Proposed change
<!--
  Describe the big picture of your changes.
  Don't forget to link your PR to an existing issue if any.
-->
Adds alias to each of the subdivisions (districts) in accordance with ISO 3166-2:PT

## Type of change

<!--
  Type of change you want to introduce. Please, check one (1) box only!
  If your PR requires multiple boxes to be checked, most likely it needs to
  be split into multiple PRs.
-->

- [ ] New country/market holidays support (thank you!)
- [x] Supported country/market holidays update (calendar discrepancy fix, localization)
- [ ] Existing code/documentation/test/process quality improvement (best practice, cleanup, refactoring, optimization)
- [ ] Dependency update (version deprecation/pin/upgrade)
- [ ] Bugfix (non-breaking change which fixes an issue)
- [ ] Breaking change (a code change causing existing functionality to break)
- [ ] New feature (new `holidays` functionality in general)

## Checklist

<!--
  Put an `x` in the boxes that apply. You can change them after PR is created.
-->

- [ ] I've followed the [contributing guidelines][contributing-guidelines]
- [x] I've successfully run `make check`, all checks and tests are green

<!--
  Thanks again for your contribution!
-->

[contributing-guidelines]: https://github.com/vacanza/holidays/blob/dev/CONTRIBUTING.rst
[docs]: https://github.com/vacanza/holidays/tree/dev/docs/source


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2110) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2110&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2110&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=vacanza_python-holidays&pullRequest=2110&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2110&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2110&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2110)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2110) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2110&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2110&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=vacanza_python-holidays&pullRequest=2110&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2110&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2110&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2110)


sonarcloud[bot]: ## [![Quality Gate Passed](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/checks/QualityGateBadge/qg-passed-20px.png 'Quality Gate Passed')](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2110) **Quality Gate passed**  
Issues  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 New issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2110&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/accepted-16px.png '') [0 Accepted issues](https://sonarcloud.io/project/issues?id=vacanza_python-holidays&pullRequest=2110&issueStatuses=ACCEPTED)

Measures  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0 Security Hotspots](https://sonarcloud.io/project/security_hotspots?id=vacanza_python-holidays&pullRequest=2110&issueStatuses=OPEN,CONFIRMED&sinceLeakPeriod=true)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Coverage on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2110&metric=new_coverage&view=list)  
![](https://sonarsource.github.io/sonarcloud-github-static-resources/v2/common/passed-16px.png '') [0.0% Duplication on New Code](https://sonarcloud.io/component_measures?id=vacanza_python-holidays&pullRequest=2110&metric=new_duplicated_lines_density&view=list)  
  
[See analysis details on SonarCloud](https://sonarcloud.io/dashboard?id=vacanza_python-holidays&pullRequest=2110)


dgomes: tests pass locally
codecov[bot]: ## [Codecov](https://app.codecov.io/gh/vacanza/holidays/pull/2110?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 100.00%. Comparing base [(`e658618`)](https://app.codecov.io/gh/vacanza/holidays/commit/e658618bae2e20f7b603a7983d49e9fdc85acba7?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) to head [(`8c8ea2f`)](https://app.codecov.io/gh/vacanza/holidays/commit/8c8ea2f08ab8c294962becc21bf0269e44bbb2e4?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).

<details><summary>Additional details and impacted files</summary>


```diff
@@            Coverage Diff            @@
##               dev     #2110   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          192       192           
  Lines        11577     11578    +1     
  Branches      1741      1741           
=========================================
+ Hits         11577     11578    +1     
```

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/vacanza/holidays/pull/2110?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).   
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza).


Patch:
diff --git a/README.rst b/README.rst
index b49dc550..6169e20d 100644
--- a/README.rst
+++ b/README.rst
@@ -757,7 +757,7 @@ All other default values are highlighted with bold:
      -
    * - Portugal
      - PT
-     - Districts: 01, 02, 03, 04, 05, 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 30
+     - Districts: 01 (Aveiro), 02 (Beja), 03 (Braga), 04 (Bragança), 05 (Castelo Branco), 06 (Coimbra), 07 (Évora), 08 (Faro), 09 (Guarda), 10 (Leiria), 11 (Lisboa), 12 (Portalegre), 13 (Porto), 14 (Santarém), 15 (Setúbal), 16 (Viana do Castelo), 17 (Vila Real), 18 (Viseu), 20 (Região Autónoma dos Açores), 30 (Região Autónoma da Madeira)
      - en_US, **pt_PT**, uk
      - OPTIONAL
    * - Puerto Rico
diff --git a/holidays/countries/brunei.py b/holidays/countries/brunei.py
index 9df846f7..9327613d 100644
--- a/holidays/countries/brunei.py
+++ b/holidays/countries/brunei.py
@@ -61,6 +61,42 @@ class Brunei(
 
     - Based on: http://www.labour.gov.bn/Lists/Upcomming%20events/AllItems.aspx
                 http://www.labour.gov.bn/Download/GUIDE%20TO%20BRUNEI%20EMPLOYMENT%20LAWS%20-%20english%20version-3.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk12-1997.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk14-1998.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk15-1998.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk14-1999.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk05-2000.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk10-2000.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk13-2000.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk07-2001.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk11-2002.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk02-2003.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk09-2004.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk11-2005.pdf
+                https://www.pmo.gov.bn/Circulars%20PDF%20Library/jpmsk12-2005.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk03-2006.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk17-2006.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk10-2007.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk09-2008.pdf
+                https://chittychat.wordpress.com/wp-content/uploads/2008/11/school_terms_20091.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk08-2009.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk09-2010.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk10-2011.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk08-2012.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk10-2012.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk07-2013.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk09-14.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk11-2015.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk09-2016.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk07-2017.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk08-2017.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk11-2018.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk06-2019.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk10-2020.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk10-2021.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk04-2022.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk04-2023.pdf
+                https://www.jpm.gov.bn/Circulars%20PDF%20Library/jpmsk06-2024.pdf
     - Checked with: https://asean.org/wp-content/uploads/2021/12/ASEAN-National-Holidays-2022.pdf
                     https://asean.org/wp-content/uploads/2022/12/ASEAN-Public-Holidays-2023.pdf
                     https://www.timeanddate.com/holidays/brunei/
@@ -109,20 +145,20 @@ class Brunei(
         # Awal Tahun Masihi
         # Status: In-Use.
 
-        # New Year's Day
+        # New Year's Day.
         self._add_observed(self._add_new_years_day(tr("Awal Tahun Masihi")))
 
         # Tahun Baru Cina
         # Status: In-Use.
 
-        # Lunar New Year
+        # Lunar New Year.
         self._add_observed(self._add_chinese_new_years_day(tr("Tahun Baru Cina")))
 
         # Hari Kebangsaan
         # Status: In-Use.
         # Starts in 1984.
 
-        # National Day
+        # National Day.
         self._add_observed(self._add_holiday_feb_23(tr("Hari Kebangsaan")))
 
         # Hari Angkatan Bersenjata Diraja Brunei
@@ -131,7 +167,7 @@ class Brunei(
         # Commemorates the formation of Royal Brunei Malay Regiment in 1961.
 
         self._add_observed(
-            # Armed Forces Day
+            # Armed Forces Day.
             self._add_holiday_may_31(tr("Hari Angkatan Bersenjata Diraja Brunei"))
         )
 
@@ -140,14 +176,14 @@ class Brunei(
         # Started in 1968.
 
         self._add_observed(
-            # Sultan Hassanal Bolkiah's Birthday
+            # Sultan Hassanal Bolkiah's Birthday.
             self._add_holiday_jul_15(tr("Hari Keputeraan KDYMM Sultan Brunei"))
         )
 
         # Hari Natal
         # Status: In-Use.
 
-        # Christmas Day
+        # Christmas Day.
         self._add_observed(self._add_christmas_day(tr("Hari Natal")))
 
         # Islamic Holidays are placed after Gregorian holidays to prevent
@@ -156,61 +192,75 @@ class Brunei(
         # Israk dan Mikraj
         # Status: In-Use.
 
-        # Isra' and Mi'raj
+        # Isra' and Mi'raj.
         for dt in self._add_isra_and_miraj_day(tr("Israk dan Mikraj")):
             self._add_observed(dt)
 
         # Hari Pertama Berpuasa
         # Status: In-Use.
 
-        # First Day of Ramadan
+        # First Day of Ramadan.
         for dt in self._add_ramadan_beginning_day(tr("Hari Pertama Berpuasa")):
             self._add_observed(dt)
 
         # Hari Nuzul Al-Quran
         # Status: In-Use.
 
-        # Anniversary of the revelation of the Quran
+        # Anniversary of the revelation of the Quran.
         for dt in self._add_nuzul_al_quran_day(tr("Hari Nuzul Al-Quran")):
             self._add_observed(dt)
 
         # Hari Raya Aidil Fitri
         # Status: In-Use.
         # This is celebrate for three days in Brunei.
-        # Observed as 'Hari Raya Puasa' and only for 2 days at certain point.
         # 1: If Wed-Thu-Fri -> Sat (3rd Day +1)
         # 2: If Thu-Fri-Sat -> Mon (2nd Day +3)
-        # 3: If Fri-Sat-Sun -> Mon (1st Day +3)
+        # 3: If Fri-Sat-Sun -> Mon, Tue (1st Day +3, 3rd day +2)
         # 4: If Sat-Sun-Mon -> Tue (2nd Day +2)
         # 5: If Sun-Mon-Tue -> Wed (1st Day +3)
-
-        # Eid al-Fitr
+        # Observed as 'Hari Raya Puasa' and only for 2 days prior to 2012.
+        # 1: If Thu-Fri -> Sat (2nd Day +1)
+        # 2: If Fri-Sat -> Mon (1nd Day +2)
+        # 3: If Sat-Sun -> Mon (2nd Day +1)
+        # 4: If Sun-Mon -> Tue (1st Day +2)
+        # This was only observed for a single day in 2000.
+
+        # Eid al-Fitr.
         name = tr("Hari Raya Aidil Fitri")
-        for dt in self._add_eid_al_fitr_day(name):
-            self._add_observed(dt, rule=FRI_TO_NEXT_MON + SUN_TO_NEXT_WED)
-        for dt in self._add_eid_al_fitr_day_two(name):
-            self._add_observed(dt, rule=FRI_TO_NEXT_MON + SUN_TO_NEXT_TUE)
-        for dt in self._add_eid_al_fitr_day_three(name):
-            self._add_observed(dt, rule=FRI_TO_NEXT_SAT)
+        if self._year >= 2012:
+            for dt in self._add_eid_al_fitr_day(name):
+                self._add_observed(dt, rule=FRI_TO_NEXT_MON + SUN_TO_NEXT_WED)
+            for dt in self._add_eid_al_fitr_day_two(name):
+                self._add_observed(dt, rule=FRI_TO_NEXT_MON + SUN_TO_NEXT_TUE)
+            for dt in self._add_eid_al_fitr_day_three(name):
+                self._add_observed(dt, rule=FRI_TO_NEXT_SAT + SUN_TO_NEXT_TUE)
+        elif self._year == 2000:
+            for dt in self._add_eid_al_fitr_day(name):
+                self._add_observed(dt)
+        else:
+            for dt in self._add_eid_al_fitr_day(name):
+                self._add_observed(dt, rule=FRI_TO_NEXT_MON + SUN_TO_NEXT_TUE)
+            for dt in self._add_eid_al_fitr_day_two(name):
+                self._add_observed(dt)
 
         # Hari Raya Aidil Adha
         # Status: In-Use.
 
-        # Eid al-Adha
+        # Eid al-Adha.
         for dt in self._add_eid_al_adha_day(tr("Hari Raya Aidil Adha")):
             self._add_observed(dt)
 
         # Awal Tahun Hijrah
         # Status: In-Use.
 
-        # Islamic New Year
+        # Islamic New Year.
         for dt in self._add_islamic_new_year_day(tr("Awal Tahun Hijrah")):
             self._add_observed(dt)
 
         # Maulidur Rasul
         # Status: In-Use.
 
-        # Prophet's Birthday
+        # Prophet's Birthday.
         for dt in self._add_mawlid_day(tr("Maulidur Rasul")):
             self._add_observed(dt)
 
@@ -225,101 +275,112 @@ class BRN(Brunei):
 
 class BruneiIslamicHolidays(_CustomIslamicHolidays):
     EID_AL_ADHA_DATES = {
-        2000: (MAR, 16),
+        1998: (APR, 7),
+        1999: (MAR, 28),
+        2000: (MAR, 17),
         2001: (MAR, 6),
         2002: (FEB, 23),
         2003: (FEB, 12),
         2004: (FEB, 2),
         2005: (JAN, 21),
-        2006: ((JAN, 10), (DEC, 31)),
+        2006: ((JAN, 11), (DEC, 31)),
         2007: (DEC, 20),
-        2008: (DEC, 9),
-        2009: (NOV, 28),
-        2010: (NOV, 17),
-        2011: (NOV, 7),
+        2008: (DEC, 8),
+        2009: (NOV, 27),
+        2010: (NOV, 16),
+        2011: (NOV, 6),
         2012: (OCT, 26),
         2013: (OCT, 15),
         2014: (OCT, 5),
         2015: (SEP, 24),
-        2016: (SEP, 13),
-        2017: (SEP, 2),
+        2016: (SEP, 12),
+        2017: (SEP, 1),
         2018: (AUG, 22),
         2019: (AUG, 11),
-        2020: (AUG, 1),
+        2020: (JUL, 31),
         2021: (JUL, 20),
-        2022: (JUL, 10),
+        2022: (JUL, 9),
         2023: (JUN, 29),
         2024: (JUN, 17),
+        2025: (JUN, 7),
     }
 
     EID_AL_FITR_DATES = {
-        2000: ((JAN, 8), (DEC, 28)),
-        2001: (DEC, 17),
+        1998: (JAN, 30),
+        1999: (JAN, 19),
+        2000: ((JAN, 8), (DEC, 27)),
+        2001: (DEC, 16),
         2002: (DEC, 6),
-        2003: (NOV, 26),
+        2003: (NOV, 25),
         2004: (NOV, 14),
-        2005: (NOV, 3),
+        2005: (NOV, 4),
         2006: (OCT, 24),
         2007: (OCT, 13),
         2008: (OCT, 1),
         2009: (SEP, 20),
         2010: (SEP, 10),
-        2011: (AUG, 31),
+        2011: (AUG, 30),
         2012: (AUG, 19),
         2013: (AUG, 8),
-        2014: (JUL, 29),
-        2015: (JUL, 18),
-        2016: (JUL, 7),
-        2017: (JUN, 26),
+        2014: (JUL, 28),
+        2015: (JUL, 17),
+        2016: (JUL, 6),
+        2017: (JUN, 25),
         2018: (JUN, 15),
         2019: (JUN, 5),
         2020: (MAY, 24),
         2021: (MAY, 13),
-        2022: (MAY, 3),
+        2022: (MAY, 2),
         2023: (APR, 22),
         2024: (APR, 10),
+        2025: (MAR, 31),
     }
 
     HIJRI_NEW_YEAR_DATES = {
+        1998: (APR, 28),
+        1999: (APR, 17),
         2000: (APR, 6),
         2001: (MAR, 26),
         2002: (MAR, 15),
-        2003: (MAR, 5),
+        2003: (MAR, 4),
         2004: (FEB, 22),
         2005: (FEB, 10),
         2006: (JAN, 31),
         2007: (JAN, 20),
         2008: ((JAN, 10), (DEC, 29)),
         2009: (DEC, 18),
-        2010: (DEC, 8),
+        2010: (DEC, 7),
         2011: (NOV, 27),
         2012: (NOV, 15),
         2013: (NOV, 5),
         2014: (OCT, 25),
-        2015: (OCT, 15),
-        2016: (OCT, 3),
+        2015: (OCT, 14),
+        2016: (OCT, 2),
         2017: (SEP, 22),
-        2018: (SEP, 12),
+        2018: (SEP, 11),
         2019: (SEP, 1),
         2020: (AUG, 20),
         2021: (AUG, 10),
         2022: (JUL, 30),
         2023: (JUL, 19),
         2024: (JUL, 7),
+        2025: (JUN, 27),
     }
 
     ISRA_AND_MIRAJ_DATES = {
-        2000: (OCT, 26),
+        1998: (NOV, 17),
+        1999: (NOV, 6),
+        2000: (OCT, 25),
         2001: (OCT, 15),
         2002: (OCT, 4),
         2003: (SEP, 24),
         2004: (SEP, 12),
         2005: (SEP, 1),
-        2006: (AUG, 22),
+        2006: (AUG, 21),
         2007: (AUG, 11),
-        2008: (JUL, 31),
+        2008: (JUL, 30),
         2009: (JUL, 20),
-        2010: (JUL, 9),
+        2010: (JUL, 10),
         2011: (JUN, 29),
         2012: (JUN, 17),
         2013: (JUN, 6),
@@ -331,15 +392,18 @@ class BruneiIslamicHolidays(_CustomIslamicHolidays):
         2019: (APR, 3),
         2020: (MAR, 22),
         2021: (MAR, 11),
-        2022: (MAR, 1),
+        2022: (FEB, 28),
         2023: (FEB, 18),
         2024: (FEB, 8),
+        2025: (JAN, 27),
     }
 
     MAWLID_DATES = {
+        1998: (JUL, 6),
+        1999: (JUN, 26),
         2000: (JUN, 15),
         2001: (JUN, 4),
-        2002: (MAY, 24),
+        2002: (MAY, 25),
         2003: (MAY, 14),
         2004: (MAY, 2),
         2005: (APR, 21),
@@ -348,24 +412,27 @@ class BruneiIslamicHolidays(_CustomIslamicHolidays):
         2008: (MAR, 20),
         2009: (MAR, 9),
         2010: (FEB, 26),
-        2011: (FEB, 16),
+        2011: (FEB, 15),
         2012: (FEB, 5),
         2013: (JAN, 24),
         2014: (JAN, 14),
         2015: ((JAN, 3), (DEC, 24)),
         2016: (DEC, 12),
         2017: (DEC, 1),
-        2018: (NOV, 21),
+        2018: (NOV, 20),
         2019: (NOV, 9),
         2020: (OCT, 29),
         2021: (OCT, 19),
         2022: (OCT, 8),
         2023: (SEP, 28),
         2024: (SEP, 16),
+        2025: (SEP, 5),
     }
 
     NUZUL_AL_QURAN_DATES = {
-        2000: (DEC, 14),
+        1998: (JAN, 16),
+        1999: ((JAN, 5), (DEC, 25)),
+        2000: (DEC, 13),
         2001: (DEC, 3),
         2002: (NOV, 22),
         2003: (NOV, 12),
@@ -377,23 +444,26 @@ class BruneiIslamicHolidays(_CustomIslamicHolidays):
         2009: (SEP, 7),
         2010: (AUG, 27),
         2011: (AUG, 17),
-        2012: (AUG, 5),
-        2013: (JUL, 25),
+        2012: (AUG, 6),
+        2013: (JUL, 26),
         2014: (JUL, 15),
         2015: (JUL, 4),
-        2016: (JUN, 23),
+        2016: (JUN, 22),
         2017: (JUN, 12),
         2018: (JUN, 2),
-        2019: (MAY, 23),
+        2019: (MAY, 22),
         2020: (MAY, 10),
         2021: (APR, 29),
         2022: (APR, 19),
         2023: (APR, 8),
         2024: (MAR, 28),
+        2025: (MAR, 18),
     }
 
     RAMADAN_BEGINNING_DATES = {
-        2000: (NOV, 28),
+        1998: (DEC, 20),
+        1999: (DEC, 9),
+        2000: (NOV, 27),
         2001: (NOV, 17),
         2002: (NOV, 6),
         2003: (OCT, 27),
@@ -401,28 +471,47 @@ class BruneiIslamicHolidays(_CustomIslamicHolidays):
         2005: (OCT, 5),
         2006: (SEP, 24),
         2007: (SEP, 13),
-        2008: (SEP, 2),
+        2008: (SEP, 1),
         2009: (AUG, 22),
         2010: (AUG, 11),
         2011: (AUG, 1),
-        2012: (JUL, 20),
-        2013: (JUL, 9),
+        2012: (JUL, 21),
+        2013: (JUL, 10),
         2014: (JUN, 29),
         2015: (JUN, 18),
-        2016: (JUN, 7),
+        2016: (JUN, 6),
         2017: (MAY, 27),
-        2018: (MAY, 16),
+        2018: (MAY, 17),
         2019: (MAY, 6),
-        2020: (APR, 25),
+        2020: (APR, 24),
         2021: (APR, 13),
         2022: (APR, 3),
         2023: (MAR, 23),
         2024: (MAR, 12),
+        2025: (MAR, 2),
     }
 
 
 class BruneiStaticHolidays:
     special_public_holidays = {
-        # Sultan Hassanal Bolkiah's Golden Jubilee celebration
+        1998: (
+            AUG,
+            10,
+            # Proclamation Ceremony of Crown Prince Al-Muhtadee Billah of Brunei.
+            tr("Istiadat Pengisytiharan Duli Pengiran Muda Mahkota Al-Muhtadee Billah"),
+        ),
+        # Royal Wedding of Crown Prince Al-Muhtadee Billah and Crown Princess Sarah of Brunei.
+        2004: (SEP, 9, tr("Istiadat Perkahwinan Diraja Brunei 2004")),
+        # Sultan Hassanal Bolkiah's Golden Jubilee celebration.
         2017: (OCT, 5, tr("Jubli Emas Sultan Hassanal Bolkiah")),
     }
+    special_public_holidays_observed = {
+        # Christmas Day.
+        1999: (DEC, 27, tr("Hari Natal")),
+        # National Day.
+        2002: (FEB, 25, tr("Hari Kebangsaan")),
+        # New Year's Day.
+        2007: (JAN, 2, tr("Awal Tahun Masihi")),
+        # Anniversary of the revelation of the Quran.
+        2014: (JUL, 16, tr("Hari Nuzul Al-Quran")),
+    }
diff --git a/holidays/countries/cambodia.py b/holidays/countries/cambodia.py
index f4152c52..966faa46 100644
--- a/holidays/countries/cambodia.py
+++ b/holidays/countries/cambodia.py
@@ -27,6 +27,7 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
     - Based on: https://www.nbc.gov.kh/english/news_and_events/official_holiday.php
                 https://www.nbc.gov.kh/news_and_events/official_holiday.php
                 https://en.wikipedia.org/wiki/Public_holidays_in_Cambodia
+                https://admin.taftac-cambodia.org/public/pdf_file/regulation_1704245695_Z7IALJjE.pdf
 
     - Checked with: https://asean.org/wp-content/uploads/2021/12/ASEAN-National-Holidays-2022.pdf
                     https://asean.org/wp-content/uploads/2022/12/ASEAN-Public-Holidays-2023.pdf
@@ -278,6 +279,16 @@ class Cambodia(HolidayBase, InternationalHolidays, StaticHolidays, ThaiCalendarH
         self._add_holiday(bon_om_touk, _timedelta(bon_om_touk_date, -1))
         self._add_holiday(bon_om_touk, _timedelta(bon_om_touk_date, +1))
 
+        # ទិវាសន្តិភាពនៅកម្ពុជា
+        # Status: In-Use.
+        # Dec 29, added from 2024 onwards.
+        #  - https://www.khmertimeskh.com/501424903/24-public-holidays-for-2024-peace-day-now-included/
+        #  - https://www.khmertimeskh.com/501551204/govt-announces-22-public-holidays-for-next-year/
+
+        if self._year >= 2024:
+            # Peace Day in Cambodia.
+            self._add_holiday_dec_29(tr("ទិវាសន្តិភាពនៅកម្ពុជា"))
+
 
 class KH(Cambodia):
     pass
diff --git a/holidays/countries/finland.py b/holidays/countries/finland.py
index 67db9100..40ae4359 100644
--- a/holidays/countries/finland.py
+++ b/holidays/countries/finland.py
@@ -125,7 +125,7 @@ class Finland(HolidayBase, ChristianHolidays, InternationalHolidays):
 
         if self._year >= 2019:
             # Europe Day
-            self._add_holiday_may_9(tr("Eurooppa-päivä"))
+            self._add_europe_day(tr("Eurooppa-päivä"))
 
         if self._year >= 1918:
             # Mothers' Day
diff --git a/holidays/countries/luxembourg.py b/holidays/countries/luxembourg.py
index 7b6521c0..5b8d4fa3 100644
--- a/holidays/countries/luxembourg.py
+++ b/holidays/countries/luxembourg.py
@@ -42,7 +42,7 @@ class Luxembourg(HolidayBase, ChristianHolidays, InternationalHolidays):
 
         if self._year >= 2019:
             # Europe Day.
-            self._add_holiday_may_9(tr("Europadag"))
+            self._add_europe_day(tr("Europadag"))
 
         # Ascension Day.
         self._add_ascension_thursday(tr("Christi Himmelfaart"))
diff --git a/holidays/countries/moldova.py b/holidays/countries/moldova.py
index 3858d971..0946ac4c 100644
--- a/holidays/countries/moldova.py
+++ b/holidays/countries/moldova.py
@@ -73,7 +73,7 @@ class Moldova(HolidayBase, ChristianHolidays, InternationalHolidays):
 
         if self._year >= 2017:
             # Europe Day.
-            self._add_holiday_may_9(tr("Ziua Europei"))
+            self._add_europe_day(tr("Ziua Europei"))
 
         if self._year >= 2016:
             # International Children's Day.
diff --git a/holidays/countries/portugal.py b/holidays/countries/portugal.py
index 8a59c525..057be7f4 100644
--- a/holidays/countries/portugal.py
+++ b/holidays/countries/portugal.py
@@ -63,6 +63,28 @@ class Portugal(HolidayBase, ChristianHolidays, InternationalHolidays):
         "20",
         "30",
     )
+    subdivisions_aliases = {
+        "Aveiro": "01",
+        "Beja": "02",
+        "Braga": "03",
+        "Bragança": "04",
+        "Castelo Branco": "05",
+        "Coimbra": "06",
+        "Évora": "07",
+        "Faro": "08",
+        "Guarda": "09",
+        "Leiria": "10",
+        "Lisboa": "11",
+        "Portalegre": "12",
+        "Porto": "13",
+        "Santarém": "14",
+        "Setúbal": "15",
+        "Viana do Castelo": "16",
+        "Vila Real": "17",
+        "Viseu": "18",
+        "Região Autónoma dos Açores": "20",
+        "Região Autónoma da Madeira": "30",
+    }
     _deprecated_subdivisions = ("Ext",)
     supported_languages = ("en_US", "pt_PT", "uk")
 
diff --git a/holidays/groups/international.py b/holidays/groups/international.py
index 87818496..8d8b90cb 100644
--- a/holidays/groups/international.py
+++ b/holidays/groups/international.py
@@ -85,6 +85,17 @@ class InternationalHolidays:
         """
         return self._add_holiday_oct_12(name)
 
+    def _add_europe_day(self, name):
+        """
+        Add Europe Day (May 9th)
+
+        Europe Day is a day celebrating "peace and unity in Europe"
+        celebrated on 5 May by the Council of Europe
+        and on 9 May by the European Union.
+        https://en.wikipedia.org/wiki/Europe_Day
+        """
+        return self._add_holiday_may_9(name)
+
     def _add_labor_day(self, name):
         """
         Add International Workers' Day (May 1st)
diff --git a/holidays/locale/en_US/LC_MESSAGES/BN.po b/holidays/locale/en_US/LC_MESSAGES/BN.po
index 1516960a..c9a09f90 100644
--- a/holidays/locale/en_US/LC_MESSAGES/BN.po
+++ b/holidays/locale/en_US/LC_MESSAGES/BN.po
@@ -14,19 +14,19 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.57\n"
+"Project-Id-Version: Holidays 0.61\n"
 "POT-Creation-Date: 2023-03-02 00:37+0700\n"
-"PO-Revision-Date: 2024-09-07 17:20+0300\n"
-"Last-Translator: ~Jhellico <jhellico@gmail.com>\n"
+"PO-Revision-Date: 2024-11-05 21:39+0700\n"
+"Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: en_US\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.4.2\n"
+"X-Generator: Poedit 3.5\n"
 
-#. Sultan Hassanal Bolkiah's Golden Jubilee celebration
+#. Sultan Hassanal Bolkiah's Golden Jubilee celebration.
 msgid "Jubli Emas Sultan Hassanal Bolkiah"
 msgstr "Sultan Hassanal Bolkiah's Golden Jubilee"
 
@@ -40,55 +40,55 @@ msgstr "%s (estimated)"
 msgid "%s (diperhatikan)"
 msgstr "%s (observed)"
 
-#. New Year's Day
+#. New Year's Day.
 msgid "Awal Tahun Masihi"
 msgstr "New Year's Day"
 
-#. Lunar New Year
+#. Lunar New Year.
 msgid "Tahun Baru Cina"
 msgstr "Lunar New Year"
 
-#. National Day
+#. National Day.
 msgid "Hari Kebangsaan"
 msgstr "National Day"
 
-#. Armed Forces Day
+#. Armed Forces Day.
 msgid "Hari Angkatan Bersenjata Diraja Brunei"
 msgstr "Armed Forces Day"
 
-#. Sultan Hassanal Bolkiah's Birthday
+#. Sultan Hassanal Bolkiah's Birthday.
 msgid "Hari Keputeraan KDYMM Sultan Brunei"
 msgstr "Sultan Hassanal Bolkiah's Birthday"
 
-#. Christmas Day
+#. Christmas Day.
 msgid "Hari Natal"
 msgstr "Christmas Day"
 
-#. Isra' and Mi'raj
+#. Isra' and Mi'raj.
 msgid "Israk dan Mikraj"
 msgstr "Isra' and Mi'raj"
 
-#. First Day of Ramadan
+#. First Day of Ramadan.
 msgid "Hari Pertama Berpuasa"
 msgstr "First Day of Ramadan"
 
-#. Anniversary of the revelation of the Quran
+#. Anniversary of the revelation of the Quran.
 msgid "Hari Nuzul Al-Quran"
 msgstr "Anniversary of the revelation of the Quran"
 
-#. Eid al-Fitr
+#. Eid al-Fitr.
 msgid "Hari Raya Aidil Fitri"
 msgstr "Eid al-Fitr"
 
-#. Eid al-Adha
+#. Eid al-Adha.
 msgid "Hari Raya Aidil Adha"
 msgstr "Eid al-Adha"
 
-#. Islamic New Year
+#. Islamic New Year.
 msgid "Awal Tahun Hijrah"
 msgstr "Islamic New Year"
 
-#. Prophet's Birthday
+#. Prophet's Birthday.
 msgid "Maulidur Rasul"
 msgstr "Prophet's Birthday"
 
@@ -96,3 +96,14 @@ msgstr "Prophet's Birthday"
 #, c-format
 msgid "%s (diperhatikan, anggaran)"
 msgstr "%s (observed, estimated)"
+
+#. Proclamation Ceremony of Crown Prince Al-Muhtadee Billah of Brunei.
+msgid "Istiadat Pengisytiharan Duli Pengiran Muda Mahkota Al-Muhtadee Billah"
+msgstr "Proclamation Ceremony of Crown Prince Al-Muhtadee Billah of Brunei"
+
+#. Royal Wedding of Crown Prince Al-Muhtadee Billah and Crown Princess Sarah
+#. of Brunei.
+msgid "Istiadat Perkahwinan Diraja Brunei 2004"
+msgstr ""
+"Royal Wedding of Crown Prince Al-Muhtadee Billah and Crown Princess Sarah of"
+" Brunei"
diff --git a/holidays/locale/en_US/LC_MESSAGES/KH.po b/holidays/locale/en_US/LC_MESSAGES/KH.po
index 01604d40..78a47c36 100644
--- a/holidays/locale/en_US/LC_MESSAGES/KH.po
+++ b/holidays/locale/en_US/LC_MESSAGES/KH.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.27\n"
+"Project-Id-Version: Holidays 0.61\n"
 "POT-Creation-Date: 2023-06-07 20:10+0700\n"
-"PO-Revision-Date: \n"
+"PO-Revision-Date: 2024-11-06 00:20+0700\n"
 "Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: en_US\n"
@@ -24,7 +24,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.3.1\n"
+"X-Generator: Poedit 3.5\n"
 
 #. Khmer New Year's Replacement Holiday
 msgid "ថ្ងៃឈប់សម្រាកសងជំនួសឲ្យពិធីបុណ្យចូលឆ្នាំថ្មីប្រពៃណីជាតិ"
@@ -126,3 +126,7 @@ msgstr "Pchum Ben Day"
 #. Water Festival
 msgid "ព្រះរាជពិធីបុណ្យអុំទូក បណ្តែតប្រទីប និងសំពះព្រះខែអកអំបុក"
 msgstr "Water Festival"
+
+#. Peace Day in Cambodia.
+msgid "ទិវាសន្តិភាពនៅកម្ពុជា"
+msgstr "Peace Day in Cambodia"
diff --git a/holidays/locale/km/LC_MESSAGES/KH.po b/holidays/locale/km/LC_MESSAGES/KH.po
index 64635fa9..c8beb293 100644
--- a/holidays/locale/km/LC_MESSAGES/KH.po
+++ b/holidays/locale/km/LC_MESSAGES/KH.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.27\n"
+"Project-Id-Version: Holidays 0.61\n"
 "POT-Creation-Date: 2023-06-07 20:10+0700\n"
-"PO-Revision-Date: \n"
+"PO-Revision-Date: 2024-11-06 00:21+0700\n"
 "Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: km\n"
@@ -24,7 +24,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 3.3.1\n"
+"X-Generator: Poedit 3.5\n"
 
 #. Khmer New Year's Replacement Holiday
 msgid "ថ្ងៃឈប់សម្រាកសងជំនួសឲ្យពិធីបុណ្យចូលឆ្នាំថ្មីប្រពៃណីជាតិ"
@@ -126,3 +126,7 @@ msgstr ""
 #. Water Festival
 msgid "ព្រះរាជពិធីបុណ្យអុំទូក បណ្តែតប្រទីប និងសំពះព្រះខែអកអំបុក"
 msgstr ""
+
+#. Peace Day in Cambodia.
+msgid "ទិវាសន្តិភាពនៅកម្ពុជា"
+msgstr ""
diff --git a/holidays/locale/ms/LC_MESSAGES/BN.po b/holidays/locale/ms/LC_MESSAGES/BN.po
index 8ede2af4..e3691a0a 100644
--- a/holidays/locale/ms/LC_MESSAGES/BN.po
+++ b/holidays/locale/ms/LC_MESSAGES/BN.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.41\n"
+"Project-Id-Version: Holidays 0.61\n"
 "POT-Creation-Date: 2023-03-02 00:37+0700\n"
-"PO-Revision-Date: \n"
+"PO-Revision-Date: 2024-11-05 21:39+0700\n"
 "Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: ms\n"
@@ -24,9 +24,9 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 3.2.2\n"
+"X-Generator: Poedit 3.5\n"
 
-#. Sultan Hassanal Bolkiah's Golden Jubilee celebration
+#. Sultan Hassanal Bolkiah's Golden Jubilee celebration.
 msgid "Jubli Emas Sultan Hassanal Bolkiah"
 msgstr ""
 
@@ -40,55 +40,55 @@ msgstr ""
 msgid "%s (diperhatikan)"
 msgstr ""
 
-#. New Year's Day
+#. New Year's Day.
 msgid "Awal Tahun Masihi"
 msgstr ""
 
-#. Lunar New Year
+#. Lunar New Year.
 msgid "Tahun Baru Cina"
 msgstr ""
 
-#. National Day
+#. National Day.
 msgid "Hari Kebangsaan"
 msgstr ""
 
-#. Armed Forces Day
+#. Armed Forces Day.
 msgid "Hari Angkatan Bersenjata Diraja Brunei"
 msgstr ""
 
-#. Sultan Hassanal Bolkiah's Birthday
+#. Sultan Hassanal Bolkiah's Birthday.
 msgid "Hari Keputeraan KDYMM Sultan Brunei"
 msgstr ""
 
-#. Christmas Day
+#. Christmas Day.
 msgid "Hari Natal"
 msgstr ""
 
-#. Isra' and Mi'raj
+#. Isra' and Mi'raj.
 msgid "Israk dan Mikraj"
 msgstr ""
 
-#. First Day of Ramadan
+#. First Day of Ramadan.
 msgid "Hari Pertama Berpuasa"
 msgstr ""
 
-#. Anniversary of the revelation of the Quran
+#. Anniversary of the revelation of the Quran.
 msgid "Hari Nuzul Al-Quran"
 msgstr ""
 
-#. Eid al-Fitr
+#. Eid al-Fitr.
 msgid "Hari Raya Aidil Fitri"
 msgstr ""
 
-#. Eid al-Adha
+#. Eid al-Adha.
 msgid "Hari Raya Aidil Adha"
 msgstr ""
 
-#. Islamic New Year
+#. Islamic New Year.
 msgid "Awal Tahun Hijrah"
 msgstr ""
 
-#. Prophet's Birthday
+#. Prophet's Birthday.
 msgid "Maulidur Rasul"
 msgstr ""
 
@@ -96,3 +96,12 @@ msgstr ""
 #, c-format
 msgid "%s (diperhatikan, anggaran)"
 msgstr ""
+
+#. Proclamation Ceremony of Crown Prince Al-Muhtadee Billah of Brunei.
+msgid "Istiadat Pengisytiharan Duli Pengiran Muda Mahkota Al-Muhtadee Billah"
+msgstr ""
+
+#. Royal Wedding of Crown Prince Al-Muhtadee Billah and Crown Princess Sarah
+#. of Brunei.
+msgid "Istiadat Perkahwinan Diraja Brunei 2004"
+msgstr ""
diff --git a/holidays/locale/th/LC_MESSAGES/BN.po b/holidays/locale/th/LC_MESSAGES/BN.po
index 1fd4152c..491ec302 100644
--- a/holidays/locale/th/LC_MESSAGES/BN.po
+++ b/holidays/locale/th/LC_MESSAGES/BN.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.41\n"
+"Project-Id-Version: Holidays 0.61\n"
 "POT-Creation-Date: 2023-03-02 00:37+0700\n"
-"PO-Revision-Date: \n"
+"PO-Revision-Date: 2024-11-05 21:39+0700\n"
 "Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: th\n"
@@ -24,9 +24,9 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 3.2.2\n"
+"X-Generator: Poedit 3.5\n"
 
-#. Sultan Hassanal Bolkiah's Golden Jubilee celebration
+#. Sultan Hassanal Bolkiah's Golden Jubilee celebration.
 msgid "Jubli Emas Sultan Hassanal Bolkiah"
 msgstr "พระราชพิธีกาญจนาภิเษกสมเด็จพระราชาธิบดีสุลต่านฮัสซานัล โบลเกียห์"
 
@@ -40,55 +40,55 @@ msgstr "%s (โดยประมาณ)"
 msgid "%s (diperhatikan)"
 msgstr "ชดเชย%s"
 
-#. New Year's Day
+#. New Year's Day.
 msgid "Awal Tahun Masihi"
 msgstr "วันขึ้นปีใหม่"
 
-#. Lunar New Year
+#. Lunar New Year.
 msgid "Tahun Baru Cina"
 msgstr "วันตรุษจีน"
 
-#. National Day
+#. National Day.
 msgid "Hari Kebangsaan"
 msgstr "วันชาติบรูไน"
 
-#. Armed Forces Day
+#. Armed Forces Day.
 msgid "Hari Angkatan Bersenjata Diraja Brunei"
 msgstr "วันกองทัพบรูไน"
 
-#. Sultan Hassanal Bolkiah's Birthday
+#. Sultan Hassanal Bolkiah's Birthday.
 msgid "Hari Keputeraan KDYMM Sultan Brunei"
 msgstr "วันเฉลิมพระชนมพรรษาสมเด็จพระราชาธิบดีสุลต่านฮัสซานัล โบลเกียห์"
 
-#. Christmas Day
+#. Christmas Day.
 msgid "Hari Natal"
 msgstr "วันคริสต์มาส"
 
-#. Isra' and Mi'raj
+#. Isra' and Mi'raj.
 msgid "Israk dan Mikraj"
 msgstr "วันเมี๊ยะราจ"
 
-#. First Day of Ramadan
+#. First Day of Ramadan.
 msgid "Hari Pertama Berpuasa"
 msgstr "วันแรกการถือศีลอด"
 
-#. Anniversary of the revelation of the Quran
+#. Anniversary of the revelation of the Quran.
 msgid "Hari Nuzul Al-Quran"
 msgstr "วันนูซุลอัลกุรอาน"
 
-#. Eid al-Fitr
+#. Eid al-Fitr.
 msgid "Hari Raya Aidil Fitri"
 msgstr "วันอีฎิ้ลฟิตริ"
 
-#. Eid al-Adha
+#. Eid al-Adha.
 msgid "Hari Raya Aidil Adha"
 msgstr "วันอีดิ้ลอัฎฮา"
 
-#. Islamic New Year
+#. Islamic New Year.
 msgid "Awal Tahun Hijrah"
 msgstr "วันขึ้นปีใหม่อิสลาม"
 
-#. Prophet's Birthday
+#. Prophet's Birthday.
 msgid "Maulidur Rasul"
 msgstr "วันเมาลิดนบี"
 
@@ -96,3 +96,14 @@ msgstr "วันเมาลิดนบี"
 #, c-format
 msgid "%s (diperhatikan, anggaran)"
 msgstr "ชดเชย%s (โดยประมาณ)"
+
+#. Proclamation Ceremony of Crown Prince Al-Muhtadee Billah of Brunei.
+msgid "Istiadat Pengisytiharan Duli Pengiran Muda Mahkota Al-Muhtadee Billah"
+msgstr "พระราชพิธีสถาปนาเจ้าชายอัลมุห์ตาดี บิลละห์ มกุฎราชกุมารแห่งบรูไน"
+
+#. Royal Wedding of Crown Prince Al-Muhtadee Billah and Crown Princess Sarah
+#. of Brunei.
+msgid "Istiadat Perkahwinan Diraja Brunei 2004"
+msgstr ""
+"พระราชพิธีอภิเษกสมรส เจ้าฟ้าชายฮัจญี อัล-มุห์ตาดี บิลลาห์ "
+"มกุฎราชกุมารแห่งบรูไน และเจ้าหญิงซาราห์ พระวรชายา"
diff --git a/holidays/locale/th/LC_MESSAGES/KH.po b/holidays/locale/th/LC_MESSAGES/KH.po
index 96cbdee8..44fc3f03 100644
--- a/holidays/locale/th/LC_MESSAGES/KH.po
+++ b/holidays/locale/th/LC_MESSAGES/KH.po
@@ -14,9 +14,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Holidays 0.27\n"
+"Project-Id-Version: Holidays 0.61\n"
 "POT-Creation-Date: 2023-06-07 20:10+0700\n"
-"PO-Revision-Date: \n"
+"PO-Revision-Date: 2024-11-06 00:21+0700\n"
 "Last-Translator: PPsyrius <ppsyrius@ppsyrius.dev>\n"
 "Language-Team: Holidays Localization Team\n"
 "Language: th\n"
@@ -24,7 +24,7 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
-"X-Generator: Poedit 3.3.1\n"
+"X-Generator: Poedit 3.5\n"
 
 #. Khmer New Year's Replacement Holiday
 msgid "ថ្ងៃឈប់សម្រាកសងជំនួសឲ្យពិធីបុណ្យចូលឆ្នាំថ្មីប្រពៃណីជាតិ"
@@ -132,3 +132,7 @@ msgstr "เทศกาลงานวันสาร์ทภจุมบิณ
 #. Water Festival
 msgid "ព្រះរាជពិធីបុណ្យអុំទូក បណ្តែតប្រទីប និងសំពះព្រះខែអកអំបុក"
 msgstr "พระราชพิธีบุญแข่งเรือลอยกระทงไฟไหว้พระจันทร์และกินข้าวเม่า"
+
+#. Peace Day in Cambodia.
+msgid "ទិវាសន្តិភាពនៅកម្ពុជា"
+msgstr "วันสันติภาพกัมพูชา"
diff --git a/requirements/dev.txt b/requirements/dev.txt
index 0df59dde..44e0d12a 100644
--- a/requirements/dev.txt
+++ b/requirements/dev.txt
@@ -6,8 +6,8 @@ gitpython==3.1.43
 hijridate==2.5.0
 lingva==5.0.4
 pre-commit==4.0.1
-pygithub==2.4.0
-ruff==0.7.1
+pygithub==2.5.0
+ruff==0.7.2
 tox==4.23.2
 urllib3>=2.2.2 # not directly required, pinned by Snyk to avoid a vulnerability
 zipp>=3.19.1 # not directly required, pinned by Snyk to avoid a vulnerability
diff --git a/snapshots/countries/BN_COMMON.json b/snapshots/countries/BN_COMMON.json
index 05624aae..0e064dbe 100644
--- a/snapshots/countries/BN_COMMON.json
+++ b/snapshots/countries/BN_COMMON.json
@@ -8,8 +8,7 @@
     "1984-06-16": "Anniversary of the revelation of the Quran (estimated)",
     "1984-06-30": "Eid al-Fitr (estimated)",
     "1984-07-01": "Eid al-Fitr (estimated)",
-    "1984-07-02": "Eid al-Fitr (estimated)",
-    "1984-07-03": "Eid al-Fitr (observed, estimated)",
+    "1984-07-02": "Eid al-Fitr (observed, estimated)",
     "1984-07-15": "Sultan Hassanal Bolkiah's Birthday",
     "1984-07-16": "Sultan Hassanal Bolkiah's Birthday (observed)",
     "1984-09-05": "Eid al-Adha (estimated)",
@@ -26,8 +25,6 @@
     "1985-06-05": "Anniversary of the revelation of the Quran (estimated)",
     "1985-06-19": "Eid al-Fitr (estimated)",
     "1985-06-20": "Eid al-Fitr (estimated)",
-    "1985-06-21": "Eid al-Fitr (estimated)",
-    "1985-06-22": "Eid al-Fitr (observed, estimated)",
     "1985-07-15": "Sultan Hassanal Bolkiah's Birthday",
     "1985-08-26": "Eid al-Adha (estimated)",
     "1985-09-15": "Islamic New Year (estimated)",
@@ -49,8 +46,7 @@
     "1986-05-31": "Armed Forces Day",
     "1986-06-08": "Eid al-Fitr (estimated)",
     "1986-06-09": "Eid al-Fitr (estimated)",
-    "1986-06-10": "Eid al-Fitr (estimated)",
-    "1986-06-11": "Eid al-Fitr (observed, estimated)",
+    "1986-06-10": "Eid al-Fitr (observed, estimated)",
     "1986-07-15": "Sultan Hassanal Bolkiah's Birthday",
     "1986-08-15": "Eid al-Adha (estimated)",
     "1986-08-16": "Eid al-Adha (observed, estimated)",
@@ -69,9 +65,9 @@
     "1987-05-16": "Anniversary of the revelation of the Quran (observed, estimated)",
     "1987-05-28": "Eid al-Fitr (estimated)",
     "1987-05-29": "Eid al-Fitr (estimated)",
-    "1987-05-30": "Eid al-Fitr (estimated)",
+    "1987-05-30": "Eid al-Fitr (observed, estimated)",
     "1987-05-31": "Armed Forces Day",
-    "1987-06-01": "Armed Forces Day (observed); Eid al-Fitr (observed, estimated)",
+    "1987-06-01": "Armed Forces Day (observed)",
     "1987-07-15": "Sultan Hassanal Bolkiah's Birthday",
     "1987-08-04": "Eid al-Adha (estimated)",
     "1987-08-25": "Islamic New Year (estimated)",
@@ -88,7 +84,6 @@
     "1988-05-03": "Anniversary of the revelation of the Quran (estimated)",
     "1988-05-16": "Eid al-Fitr (estimated)",
     "1988-05-17": "Eid al-Fitr (estimated)",
-    "1988-05-18": "Eid al-Fitr (estimated)",
     "1988-05-31": "Armed Forces Day",
     "1988-07-15": "Sultan Hassanal Bolkiah's Birthday",
     "1988-07-16": "Sultan Hassanal Bolkiah's Birthday (observed)",
@@ -109,8 +104,7 @@
     "1989-04-24": "Anniversary of the revelation of the Quran (observed, estimated)",
     "1989-05-06": "Eid al-Fitr (estimated)",
     "1989-05-07": "Eid al-Fitr (estimated)",
-    "1989-05-08": "Eid al-Fitr (estimated)",
-    "1989-05-09": "Eid al-Fitr (observed, estimated)",
+    "1989-05-08": "Eid al-Fitr (observed, estimated)",
     "1989-05-31": "Armed Forces Day",
     "1989-07-13": "Eid al-Adha (estimated)",
     "1989-07-15": "Sultan Hassanal Bolkiah's Birthday",
@@ -126,8 +120,7 @@
     "1990-04-12": "Anniversary of the revelation of the Quran (estimated)",
     "1990-04-26": "Eid al-Fitr (estimated)",
     "1990-04-27": "Eid al-Fitr (estimated)",
-    "1990-04-28": "Eid al-Fitr (estimated)",
-    "1990-04-30": "Eid al-Fitr (observed, estimated)",
+    "1990-04-28": "Eid al-Fitr (observed, estimated)",
     "1990-05-31": "Armed Forces Day",
     "1990-07-02": "Eid al-Adha (estimated)",
     "1990-07-15": "Sultan Hassanal Bolkiah's Birthday",
@@ -145,7 +138,6 @@
     "1991-04-02": "Anniversary of the revelation of the Quran (estimated)",
     "1991-04-15": "Eid al-Fitr (estimated)",
     "1991-04-16": "Eid al-Fitr (estimated)",
-    "1991-04-17": "Eid al-Fitr (estimated)",
     "1991-05-31": "Armed Forces Day",
     "1991-06-01": "Armed Forces Day (observed)",
     "1991-06-22": "Eid al-Adha (estimated)",
@@ -165,8 +157,7 @@
     "1992-03-21": "Anniversary of the revelation of the Quran (estimated)",
     "1992-04-04": "Eid al-Fitr (estimated)",
     "1992-04-05": "Eid al-Fitr (estimated)",
-    "1992-04-06": "Eid al-Fitr (estimated)",
-    "1992-04-07": "Eid al-Fitr (observed, estimated)",
+    "1992-04-06": "Eid al-Fitr (observed, estimated)",
     "1992-05-31": "Armed Forces Day",
     "1992-06-01": "Armed Forces Day (observed)",
     "1992-06-11": "Eid al-Adha (estimated)",
@@ -184,8 +175,6 @@
     "1993-03-10": "Anniversary of the revelation of the Quran (estimated)",
     "1993-03-24": "Eid al-Fitr (estimated)",
     "1993-03-25": "Eid al-Fitr (estimated)",
-    "1993-03-26": "Eid al-Fitr (estimated)",
-    "1993-03-27": "Eid al-Fitr (observed, estimated)",
     "1993-05-31": "Armed Forces Day; Eid al-Adha (estimated)",
     "1993-06-21": "Islamic New Year (estimated)",
     "1993-07-15": "Sultan Hassanal Bolkiah's Birthday",
@@ -203,8 +192,7 @@
     "1994-02-28": "Anniversary of the revelation of the Quran (observed, estimated)",
     "1994-03-13": "Eid al-Fitr (estimated)",
     "1994-03-14": "Eid al-Fitr (estimated)",
-    "1994-03-15": "Eid al-Fitr (estimated)",
-    "1994-03-16": "Eid al-Fitr (observed, estimated)",
+    "1994-03-15": "Eid al-Fitr (observed, estimated)",
     "1994-05-20": "Eid al-Adha (estimated)",
     "1994-05-21": "Eid al-Adha (observed, estimated)",
     "1994-05-31": "Armed Forces Day",
@@ -224,8 +212,7 @@
     "1995-02-23": "National Day",
     "1995-03-02": "Eid al-Fitr (estimated)",
     "1995-03-03": "Eid al-Fitr (estimated)",
-    "1995-03-04": "Eid al-Fitr (estimated)",
-    "1995-03-06": "Eid al-Fitr (observed, estimated)",
+    "1995-03-04": "Eid al-Fitr (observed, estimated)",
     "1995-05-09": "Eid al-Adha (estimated)",
     "1995-05-30": "Islamic New Year (estimated)",
     "1995-05-31": "Armed Forces Day",
@@ -239,7 +226,6 @@
     "1996-02-06": "Anniversary of the revelation of the Quran (estimated)",
     "1996-02-19": "Eid al-Fitr (estimated); Lunar New Year",
     "1996-02-20": "Eid al-Fitr (estimated)",
-    "1996-02-21": "Eid al-Fitr (estimated)",
     "1996-02-23": "National Day",
     "1996-02-24": "National Day (observed)",
     "1996-04-27": "Eid al-Adha (estimated)",
@@ -259,8 +245,7 @@
     "1997-02-07": "Lunar New Year",
     "1997-02-08": "Eid al-Fitr (estimated); Lunar New Year (observed)",
     "1997-02-09": "Eid al-Fitr (estimated)",
-    "1997-02-10": "Eid al-Fitr (estimated)",
-    "1997-02-11": "Eid al-Fitr (observed, estimated)",
+    "1997-02-10": "Eid al-Fitr (observed, estimated)",
     "1997-02-23": "National Day",
     "1997-02-24": "National Day (observed)",
     "1997-04-17": "Eid al-Adha (estimated)",
@@ -272,59 +257,57 @@
     "1997-12-25": "Christmas Day",
     "1997-12-30": "First Day of Ramadan (estimated)",
     "1998-01-01": "New Year's Day",
-    "1998-01-15": "Anniversary of the revelation of the Quran (estimated)",
+    "1998-01-16": "Anniversary of the revelation of the Quran",
+    "1998-01-17": "Anniversary of the revelation of the Quran (observed)",
     "1998-01-28": "Lunar New Year",
-    "1998-01-29": "Eid al-Fitr (estimated)",
-    "1998-01-30": "Eid al-Fitr (estimated)",
-    "1998-01-31": "Eid al-Fitr (estimated)",
-    "1998-02-02": "Eid al-Fitr (observed, estimated)",
+    "1998-01-30": "Eid al-Fitr",
+    "1998-01-31": "Eid al-Fitr",
+    "1998-02-02": "Eid al-Fitr (observed)",
     "1998-02-23": "National Day",
-    "1998-04-07": "Eid al-Adha (estimated)",
-    "1998-04-27": "Islamic New Year (estimated)",
+    "1998-04-07": "Eid al-Adha",
+    "1998-04-28": "Islamic New Year",
     "1998-05-31": "Armed Forces Day",
     "1998-06-01": "Armed Forces Day (observed)",
-    "1998-07-06": "Prophet's Birthday (estimated)",
+    "1998-07-06": "Prophet's Birthday",
     "1998-07-15": "Sultan Hassanal Bolkiah's Birthday",
-    "1998-11-16": "Isra' and Mi'raj (estimated)",
-    "1998-12-19": "First Day of Ramadan (estimated)",
+    "1998-08-10": "Proclamation Ceremony of Crown Prince Al-Muhtadee Billah of Brunei",
+    "1998-11-17": "Isra' and Mi'raj",
+    "1998-12-20": "First Day of Ramadan",
+    "1998-12-21": "First Day of Ramadan (observed)",
     "1998-12-25": "Christmas Day",
     "1998-12-26": "Christmas Day (observed)",
     "1999-01-01": "New Year's Day",
     "1999-01-02": "New Year's Day (observed)",
-    "1999-01-04": "Anniversary of the revelation of the Quran (estimated)",
-    "1999-01-18": "Eid al-Fitr (estimated)",
-    "1999-01-19": "Eid al-Fitr (estimated)",
-    "1999-01-20": "Eid al-Fitr (estimated)",
+    "1999-01-05": "Anniversary of the revelation of the Quran",
+    "1999-01-19": "Eid al-Fitr",
+    "1999-01-20": "Eid al-Fitr",
     "1999-02-16": "Lunar New Year",
     "1999-02-23": "National Day",
-    "1999-03-27": "Eid al-Adha (estimated)",
-    "1999-04-17": "Islamic New Year (estimated)",
+    "1999-03-28": "Eid al-Adha",
+    "1999-03-29": "Eid al-Adha (observed)",
+    "1999-04-17": "Islamic New Year",
     "1999-05-31": "Armed Forces Day",
-    "1999-06-26": "Prophet's Birthday (estimated)",
+    "1999-06-26": "Prophet's Birthday",
     "1999-07-15": "Sultan Hassanal Bolkiah's Birthday",
-    "1999-11-05": "Isra' and Mi'raj (estimated)",
-    "1999-11-06": "Isra' and Mi'raj (observed, estimated)",
-    "1999-12-09": "First Day of Ramadan (estimated)",
-    "1999-12-25": "Anniversary of the revelation of the Quran (estimated); Christmas Day",
+    "1999-11-06": "Isra' and Mi'raj",
+    "1999-12-09": "First Day of Ramadan",
+    "1999-12-25": "Anniversary of the revelation of the Quran; Christmas Day",
+    "1999-12-27": "Christmas Day (observed)",
     "2000-01-01": "New Year's Day",
     "2000-01-08": "Eid al-Fitr",
-    "2000-01-09": "Eid al-Fitr",
-    "2000-01-10": "Eid al-Fitr",
-    "2000-01-11": "Eid al-Fitr (observed)",
     "2000-02-05": "Lunar New Year",
     "2000-02-23": "National Day",
-    "2000-03-16": "Eid al-Adha",
+    "2000-03-17": "Eid al-Adha",
+    "2000-03-18": "Eid al-Adha (observed)",
     "2000-04-06": "Islamic New Year",
     "2000-05-31": "Armed Forces Day",
     "2000-06-15": "Prophet's Birthday",
     "2000-07-15": "Sultan Hassanal Bolkiah's Birthday",
-    "2000-10-26": "Isra' and Mi'raj",
-    "2000-11-28": "First Day of Ramadan",
-    "2000-12-14": "Anniversary of the revelation of the Quran",
+    "2000-10-25": "Isra' and Mi'raj",
+    "2000-11-27": "First Day of Ramadan",
+    "2000-12-13": "Anniversary of the revelation of the Quran",
     "2000-12-25": "Christmas Day",
-    "2000-12-28": "Eid al-Fitr",
-    "2000-12-29": "Eid al-Fitr",
-    "2000-12-30": "Eid al-Fitr",
+    "2000-12-27": "Eid al-Fitr",
     "2001-01-01": "New Year's Day",
     "2001-01-24": "Lunar New Year",
     "2001-02-23": "National Day",
@@ -338,17 +321,17 @@
     "2001-10-15": "Isra' and Mi'raj",
     "2001-11-17": "First Day of Ramadan",
     "2001-12-03": "Anniversary of the revelation of the Quran",
+    "2001-12-16": "Eid al-Fitr",
     "2001-12-17": "Eid al-Fitr",
-    "2001-12-18": "Eid al-Fitr",
-    "2001-12-19": "Eid al-Fitr",
+    "2001-12-18": "Eid al-Fitr (observed)",
     "2001-12-25": "Christmas Day",
     "2002-01-01": "New Year's Day",
     "2002-02-12": "Lunar New Year",
     "2002-02-23": "Eid al-Adha; National Day",
+    "2002-02-25": "National Day (observed)",
     "2002-03-15": "Islamic New Year",
     "2002-03-16": "Islamic New Year (observed)",
-    "2002-05-24": "Prophet's Birthday",
-    "2002-05-25": "Prophet's Birthday (observed)",
+    "2002-05-25": "Prophet's Birthday",
     "2002-05-31": "Armed Forces Day",
     "2002-06-01": "Armed Forces Day (observed)",
     "2002-07-15": "Sultan Hassanal Bolkiah's Birthday",
@@ -359,7 +342,6 @@
     "2002-11-23": "Anniversary of the revelation of the Quran (observed)",
     "2002-12-06": "Eid al-Fitr",
     "2002-12-07": "Eid al-Fitr",
-    "2002-12-08": "Eid al-Fitr",
     "2002-12-09": "Eid al-Fitr (observed)",
     "2002-12-25": "Christmas Day",
     "2003-01-01": "New Year's Day",
@@ -367,17 +349,15 @@
     "2003-02-12": "Eid al-Adha",
     "2003-02-23": "National Day",
     "2003-02-24": "National Day (observed)",
-    "2003-03-05": "Islamic New Year",
+    "2003-03-04": "Islamic New Year",
     "2003-05-14": "Prophet's Birthday",
     "2003-05-31": "Armed Forces Day",
     "2003-07-15": "Sultan Hassanal Bolkiah's Birthday",
     "2003-09-24": "Isra' and Mi'raj",
     "2003-10-27": "First Day of Ramadan",
     "2003-11-12": "Anniversary of the revelation of the Quran",
+    "2003-11-25": "Eid al-Fitr",
     "2003-11-26": "Eid al-Fitr",
-    "2003-11-27": "Eid al-Fitr",
-    "2003-11-28": "Eid al-Fitr",
-    "2003-11-29": "Eid al-Fitr (observed)",
     "2003-12-25": "Christmas Day",
     "2004-01-01": "New Year's Day",
     "2004-01-22": "Lunar New Year",
@@ -388,14 +368,14 @@
     "2004-05-03": "Prophet's Birthday (observed)",
     "2004-05-31": "Armed Forces Day",
     "2004-07-15": "Sultan Hassanal Bolkiah's Birthday",
+    "2004-09-09": "Royal Wedding of Crown Prince Al-Muhtadee Billah and Crown Princess Sarah of Brunei",
     "2004-09-12": "Isra' and Mi'raj",
     "2004-09-13": "Isra' and Mi'raj (observed)",
     "2004-10-16": "First Day of Ramadan",
     "2004-11-01": "Anniversary of the revelation of the Quran",
     "2004-11-14": "Eid al-Fitr",
     "2004-11-15": "Eid al-Fitr",
-    "2004-11-16": "Eid al-Fitr",
-    "2004-11-17": "Eid al-Fitr (observed)",
+    "2004-11-16": "Eid al-Fitr (observed)",
     "2004-12-25": "Christmas Day",
     "2005-01-01": "New Year's Day",
     "2005-01-21": "Eid al-Adha",
@@ -411,7 +391,6 @@
     "2005-10-05": "First Day of Ramadan",
     "2005-10-21": "Anniversary of the revelation of the Quran",
     "2005-10-22": "Anniversary of the revelation of the Quran (observed)",
-    "2005-11-03": "Eid al-Fitr",
     "2005-11-04": "Eid al-Fitr",
     "2005-11-05": "Eid al-Fitr",
     "2005-11-07": "Eid al-Fitr (observed)",
@@ -419,7 +398,7 @@
     "2005-12-26": "Christmas Day (observed)",
     "2006-01-01": "New Year's Day",
     "2006-01-02": "New Year's Day (observed)",
-    "2006-01-10": "Eid al-Adha",
+    "2006-01-11": "Eid al-Adha",
     "2006-01-29": "Lunar New Year",
     "2006-01-30": "Lunar New Year (observed)",
     "2006-01-31": "Islamic New Year",
@@ -427,16 +406,16 @@
     "2006-04-11": "Prophet's Birthday",
     "2006-05-31": "Armed Forces Day",
     "2006-07-15": "Sultan Hassanal Bolkiah's Birthday",
-    "2006-08-22": "Isra' and Mi'raj",
+    "2006-08-21": "Isra' and Mi'raj",
     "2006-09-24": "First Day of Ramadan",
     "2006-09-25": "First Day of Ramadan (observed)",
     "2006-10-10": "Anniversary of the revelation of the Quran",
     "2006-10-24": "Eid al-Fitr",
     "2006-10-25": "Eid al-Fitr",
-    "2006-10-26": "Eid al-Fitr",
     "2006-12-25": "Christmas Day",
     "2006-12-31": "Eid al-Adha",
     "2007-01-01": "New Year's Day",
+    "2007-01-02": "New Year's Day (observed)",
     "2007-01-20": "Islamic New Year",
     "2007-02-18": "Lunar New Year",
     "2007-02-19": "Lunar New Year (observed)",
@@ -451,8 +430,7 @@
     "2007-09-29": "Anniversary of the revelation of the Quran",
     "2007-10-13": "Eid al-Fitr",
     "2007-10-14": "Eid al-Fitr",
-    "2007-10-15": "Eid al-Fitr",
-    "2007-10-16": "Eid al-Fitr (observed)",
+    "2007-10-15": "Eid al-Fitr (observed)",
     "2007-12-20": "Eid al-Adha",
     "2007-12-25": "Christmas Day",
     "2008-01-01": "New Year's Day",
@@ -462,14 +440,12 @@
     "2008-03-20": "Prophet's Birthday",
     "2008-05-31": "Armed Forces Day",
     "2008-07-15": "Sultan Hassanal Bolkiah's Birthday",
-    "2008-07-31": "Isra' and Mi'raj",
-    "2008-09-02": "First Day of Ramadan",
+    "2008-07-30": "Isra' and Mi'raj",
+    "2008-09-01": "First Day of Ramadan",
     "2008-09-18": "Anniversary of the revelation of the Quran",
     "2008-10-01": "Eid al-Fitr",
     "2008-10-02": "Eid al-Fitr",
-    "2008-10-03": "Eid al-Fitr",
-    "2008-10-04": "Eid al-Fitr (observed)",
-    "2008-12-09": "Eid al-Adha",
+    "2008-12-08": "Eid al-Adha",
     "2008-12-25": "Christmas Day",
     "2008-12-29": "Islamic New Year",
     "2009-01-01": "New Year's Day",
@@ -484,9 +460,9 @@
     "2009-09-07": "Anniversary of the revelation of the Quran",
     "2009-09-20": "Eid al-Fitr",
     "2009-09-21": "Eid al-Fitr",
-    "2009-09-22": "Eid al-Fitr",
-    "2009-09-23": "Eid al-Fitr (observed)",
-    "2009-11-28": "Eid al-Adha",
+    "2009-09-22": "Eid al-Fitr (observed)",
+    "2009-11-27": "Eid al-Adha",
+    "2009-11-28": "Eid al-Adha (observed)",
     "2009-12-18": "Islamic New Year",
     "2009-12-19": "Islamic New Year (observed)",
     "2009-12-25": "Christmas Day",
@@ -499,22 +475,20 @@
     "2010-02-26": "Prophet's Birthday",
     "2010-02-27": "Prophet's Birthday (observed)",
     "2010-05-31": "Armed Forces Day",
-    "2010-07-09": "Isra' and Mi'raj",
-    "2010-07-10": "Isra' and Mi'raj (observed)",
+    "2010-07-10": "Isra' and Mi'raj",
     "2010-07-15": "Sultan Hassanal Bolkiah's Birthday",
     "2010-08-11": "First Day of Ramadan",
     "2010-08-27": "Anniversary of the revelation of the Quran",
     "2010-08-28": "Anniversary of the revelation of the Quran (observed)",
     "2010-09-10": "Eid al-Fitr",
     "2010-09-11": "Eid al-Fitr",
-    "2010-09-12": "Eid al-Fitr",
     "2010-09-13": "Eid al-Fitr (observed)",
-    "2010-11-17": "Eid al-Adha",
-    "2010-12-08": "Islamic New Year",
+    "2010-11-16": "Eid al-Adha",
+    "2010-12-07": "Islamic New Year",
     "2010-12-25": "Christmas Day",
     "2011-01-01": "New Year's Day",
     "2011-02-03": "Lunar New Year",
-    "2011-02-16": "Prophet's Birthday",
+    "2011-02-15": "Prophet's Birthday",
     "2011-02-23": "National Day",
     "2011-05-31": "Armed Forces Day",
     "2011-06-29": "Isra' and Mi'raj",
@@ -522,11 +496,10 @@
     "2011-07-16": "Sultan Hassanal Bolkiah's Birthday (observed)",
     "2011-08-01": "First Day of Ramadan",
     "2011-08-17": "Anniversary of the revelation of the Quran",
+    "2011-08-30": "Eid al-Fitr",
     "2011-08-31": "Eid al-Fitr",
-    "2011-09-01": "Eid al-Fitr",
-    "2011-09-02": "Eid al-Fitr",
-    "2011-09-03": "Eid al-Fitr (observed)",
-    "2011-11-07": "Eid al-Adha",
+    "2011-11-06": "Eid al-Adha",
+    "2011-11-07": "Eid al-Adha (observed)",
     "2011-11-27": "Islamic New Year",
     "2011-11-28": "Islamic New Year (observed)",
     "2011-12-25": "Christmas Day",
@@ -542,10 +515,8 @@
     "2012-06-18": "Isra' and Mi'raj (observed)",
     "2012-07-15": "Sultan Hassanal Bolkiah's Birthday",
     "2012-07-16": "Sultan Hassanal Bolkiah's Birthday (observed)",
-    "2012-07-20": "First Day of Ramadan",
-    "2012-07-21": "First Day of Ramadan (observed)",
-    "2012-08-05": "Anniversary of the revelation of the Quran",
-    "2012-08-06": "Anniversary of the revelation of the Quran (observed)",
+    "2012-07-21": "First Day of Ramadan",
+    "2012-08-06": "Anniversary of the revelation of the Quran",
     "2012-08-19": "Eid al-Fitr",
     "2012-08-20": "Eid al-Fitr",
     "2012-08-21": "Eid al-Fitr",
@@ -562,9 +533,10 @@
     "2013-05-31": "Armed Forces Day",
     "2013-06-01": "Armed Forces Day (observed)",
     "2013-06-06": "Isra' and Mi'raj",
-    "2013-07-09": "First Day of Ramadan",
+    "2013-07-10": "First Day of Ramadan",
     "2013-07-15": "Sultan Hassanal Bolkiah's Birthday",
-    "2013-07-25": "Anniversary of the revelation of the Quran",
+    "2013-07-26": "Anniversary of the revelation of the Quran",
+    "2013-07-27": "Anniversary of the revelation of the Quran (observed)",
     "2013-08-08": "Eid al-Fitr",
     "2013-08-09": "Eid al-Fitr",
     "2013-08-10": "Eid al-Fitr",
@@ -583,9 +555,10 @@
     "2014-06-29": "First Day of Ramadan",
     "2014-06-30": "First Day of Ramadan (observed)",
     "2014-07-15": "Anniversary of the revelation of the Quran; Sultan Hassanal Bolkiah's Birthday",
+    "2014-07-16": "Anniversary of the revelation of the Quran (observed)",
+    "2014-07-28": "Eid al-Fitr",
     "2014-07-29": "Eid al-Fitr",
     "2014-07-30": "Eid al-Fitr",
-    "2014-07-31": "Eid al-Fitr",
     "2014-10-05": "Eid al-Adha",
     "2014-10-06": "Eid al-Adha (observed)",
     "2014-10-25": "Islamic New Year",
@@ -600,12 +573,13 @@
     "2015-06-18": "First Day of Ramadan",
     "2015-07-04": "Anniversary of the revelation of the Quran",
     "2015-07-15": "Sultan Hassanal Bolkiah's Birthday",
+    "2015-07-17": "Eid al-Fitr",
     "2015-07-18": "Eid al-Fitr",
     "2015-07-19": "Eid al-Fitr",
-    "2015-07-20": "Eid al-Fitr",
+    "2015-07-20": "Eid al-Fitr (observed)",
     "2015-07-21": "Eid al-Fitr (observed)",
     "2015-09-24": "Eid al-Adha",
-    "2015-10-15": "Islamic New Year",
+    "2015-10-14": "Islamic New Year",
     "2015-12-24": "Prophet's Birthday",
     "2015-12-25": "Christmas Day",
     "2015-12-26": "Christmas Day (observed)",
@@ -615,16 +589,17 @@
     "2016-02-23": "National Day",
     "2016-05-05": "Isra' and Mi'raj",
     "2016-05-31": "Armed Forces Day",
-    "2016-06-07": "First Day of Ramadan",
-    "2016-06-23": "Anniversary of the revelation of the Quran",
+    "2016-06-06": "First Day of Ramadan",
+    "2016-06-22": "Anniversary of the revelation of the Quran",
+    "2016-07-06": "Eid al-Fitr",
     "2016-07-07": "Eid al-Fitr",
     "2016-07-08": "Eid al-Fitr",
-    "2016-07-09": "Eid al-Fitr",
-    "2016-07-11": "Eid al-Fitr (observed)",
+    "2016-07-09": "Eid al-Fitr (observed)",
     "2016-07-15": "Sultan Hassanal Bolkiah's Birthday",
     "2016-07-16": "Sultan Hassanal Bolkiah's Birthday (observed)",
-    "2016-09-13": "Eid al-Adha",
-    "2016-10-03": "Islamic New Year",
+    "2016-09-12": "Eid al-Adha",
+    "2016-10-02": "Islamic New Year",
+    "2016-10-03": "Islamic New Year (observed)",
     "2016-12-12": "Prophet's Birthday",
     "2016-12-25": "Christmas Day",
     "2016-12-26": "Christmas Day (observed)",
@@ -636,11 +611,13 @@
     "2017-05-27": "First Day of Ramadan",
     "2017-05-31": "Armed Forces Day",
     "2017-06-12": "Anniversary of the revelation of the Quran",
+    "2017-06-25": "Eid al-Fitr",
     "2017-06-26": "Eid al-Fitr",
     "2017-06-27": "Eid al-Fitr",
-    "2017-06-28": "Eid al-Fitr",
+    "2017-06-28": "Eid al-Fitr (observed)",
     "2017-07-15": "Sultan Hassanal Bolkiah's Birthday",
-    "2017-09-02": "Eid al-Adha",
+    "2017-09-01": "Eid al-Adha",
+    "2017-09-02": "Eid al-Adha (observed)",
     "2017-09-22": "Islamic New Year",
     "2017-09-23": "Islamic New Year (observed)",
     "2017-10-05": "Sultan Hassanal Bolkiah's Golden Jubilee",
@@ -653,25 +630,26 @@
     "2018-02-23": "National Day",
     "2018-02-24": "National Day (observed)",
     "2018-04-14": "Isra' and Mi'raj",
-    "2018-05-16": "First Day of Ramadan",
+    "2018-05-17": "First Day of Ramadan",
     "2018-05-31": "Armed Forces Day",
     "2018-06-02": "Anniversary of the revelation of the Quran",
     "2018-06-15": "Eid al-Fitr",
     "2018-06-16": "Eid al-Fitr",
     "2018-06-17": "Eid al-Fitr",
     "2018-06-18": "Eid al-Fitr (observed)",
+    "2018-06-19": "Eid al-Fitr (observed)",
     "2018-07-15": "Sultan Hassanal Bolkiah's Birthday",
     "2018-07-16": "Sultan Hassanal Bolkiah's Birthday (observed)",
     "2018-08-22": "Eid al-Adha",
-    "2018-09-12": "Islamic New Year",
-    "2018-11-21": "Prophet's Birthday",
+    "2018-09-11": "Islamic New Year",
+    "2018-11-20": "Prophet's Birthday",
     "2018-12-25": "Christmas Day",
     "2019-01-01": "New Year's Day",
     "2019-02-05": "Lunar New Year",
     "2019-02-23": "National Day",
     "2019-04-03": "Isra' and Mi'raj",
     "2019-05-06": "First Day of Ramadan",
-    "2019-05-23": "Anniversary of the revelation of the Quran",
+    "2019-05-22": "Anniversary of the revelation of the Quran",
     "2019-05-31": "Armed Forces Day",
     "2019-06-01": "Armed Forces Day (observed)",
     "2019-06-05": "Eid al-Fitr",
@@ -691,7 +669,8 @@
     "2020-02-24": "National Day (observed)",
     "2020-03-22": "Isra' and Mi'raj",
     "2020-03-23": "Isra' and Mi'raj (observed)",
-    "2020-04-25": "First Day of Ramadan",
+    "2020-04-24": "First Day of Ramadan",
+    "2020-04-25": "First Day of Ramadan (observed)",
     "2020-05-10": "Anniversary of the revelation of the Quran",
     "2020-05-11": "Anniversary of the revelation of the Quran (observed)",
     "2020-05-24": "Eid al-Fitr",
@@ -701,7 +680,8 @@
     "2020-05-31": "Armed Forces Day",
     "2020-06-01": "Armed Forces Day (observed)",
     "2020-07-15": "Sultan Hassanal Bolkiah's Birthday",
-    "2020-08-01": "Eid al-Adha",
+    "2020-07-31": "Eid al-Adha",
+    "2020-08-01": "Eid al-Adha (observed)",
     "2020-08-20": "Islamic New Year",
     "2020-10-29": "Prophet's Birthday",
     "2020-12-25": "Christmas Day",
@@ -727,16 +707,15 @@
     "2022-01-01": "New Year's Day",
     "2022-02-01": "Lunar New Year",
     "2022-02-23": "National Day",
-    "2022-03-01": "Isra' and Mi'raj",
+    "2022-02-28": "Isra' and Mi'raj",
     "2022-04-03": "First Day of Ramadan",
     "2022-04-04": "First Day of Ramadan (observed)",
     "2022-04-19": "Anniversary of the revelation of the Quran",
+    "2022-05-02": "Eid al-Fitr",
     "2022-05-03": "Eid al-Fitr",
     "2022-05-04": "Eid al-Fitr",
-    "2022-05-05": "Eid al-Fitr",
     "2022-05-31": "Armed Forces Day",
-    "2022-07-10": "Eid al-Adha",
-    "2022-07-11": "Eid al-Adha (observed)",
+    "2022-07-09": "Eid al-Adha",
     "2022-07-15": "Sultan Hassanal Bolkiah's Birthday",
     "2022-07-16": "Sultan Hassanal Bolkiah's Birthday (observed)",
     "2022-07-30": "Islamic New Year",
@@ -781,22 +760,23 @@
     "2024-09-16": "Prophet's Birthday",
     "2024-12-25": "Christmas Day",
     "2025-01-01": "New Year's Day",
-    "2025-01-27": "Isra' and Mi'raj (estimated)",
+    "2025-01-27": "Isra' and Mi'raj",
     "2025-01-29": "Lunar New Year",
     "2025-02-23": "National Day",
     "2025-02-24": "National Day (observed)",
-    "2025-03-01": "First Day of Ramadan (estimated)",
-    "2025-03-17": "Anniversary of the revelation of the Quran (estimated)",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (estimated)",
-    "2025-04-01": "Eid al-Fitr (estimated)",
-    "2025-04-02": "Eid al-Fitr (observed, estimated)",
+    "2025-03-02": "First Day of Ramadan",
+    "2025-03-03": "First Day of Ramadan (observed)",
+    "2025-03-18": "Anniversary of the revelation of the Quran",
+    "2025-03-31": "Eid al-Fitr",
+    "2025-04-01": "Eid al-Fitr",
+    "2025-04-02": "Eid al-Fitr",
     "2025-05-31": "Armed Forces Day",
-    "2025-06-06": "Eid al-Adha (estimated)",
-    "2025-06-07": "Eid al-Adha (observed, estimated)",
-    "2025-06-26": "Islamic New Year (estimated)",
+    "2025-06-07": "Eid al-Adha",
+    "2025-06-27": "Islamic New Year",
+    "2025-06-28": "Islamic New Year (observed)",
     "2025-07-15": "Sultan Hassanal Bolkiah's Birthday",
-    "2025-09-04": "Prophet's Birthday (estimated)",
+    "2025-09-05": "Prophet's Birthday",
+    "2025-09-06": "Prophet's Birthday (observed)",
     "2025-12-25": "Christmas Day",
     "2026-01-01": "New Year's Day",
     "2026-01-16": "Isra' and Mi'raj (estimated)",
@@ -810,6 +790,7 @@
     "2026-03-21": "Eid al-Fitr (estimated)",
     "2026-03-22": "Eid al-Fitr (estimated)",
     "2026-03-23": "Eid al-Fitr (observed, estimated)",
+    "2026-03-24": "Eid al-Fitr (observed, estimated)",
     "2026-05-27": "Eid al-Adha (estimated)",
     "2026-05-31": "Armed Forces Day",
     "2026-06-01": "Armed Forces Day (observed)",
@@ -898,6 +879,7 @@
     "2031-01-25": "Eid al-Fitr (estimated)",
     "2031-01-26": "Eid al-Fitr (estimated)",
     "2031-01-27": "Eid al-Fitr (observed, estimated)",
+    "2031-01-28": "Eid al-Fitr (observed, estimated)",
     "2031-02-23": "National Day",
     "2031-02-24": "National Day (observed)",
     "2031-04-02": "Eid al-Adha (estimated)",
@@ -951,6 +933,7 @@
     "2033-12-24": "Eid al-Fitr (estimated)",
     "2033-12-25": "Christmas Day; Eid al-Fitr (estimated)",
     "2033-12-26": "Christmas Day (observed); Eid al-Fitr (observed, estimated)",
+    "2033-12-27": "Christmas Day (observed); Eid al-Fitr (observed, estimated)",
     "2034-01-01": "New Year's Day",
     "2034-01-02": "New Year's Day (observed)",
     "2034-02-19": "Lunar New Year",
@@ -1041,6 +1024,7 @@
     "2038-10-30": "Eid al-Fitr (estimated)",
     "2038-10-31": "Eid al-Fitr (estimated)",
     "2038-11-01": "Eid al-Fitr (observed, estimated)",
+    "2038-11-02": "Eid al-Fitr (observed, estimated)",
     "2038-12-25": "Christmas Day",
     "2039-01-01": "New Year's Day",
     "2039-01-05": "Eid al-Adha (estimated)",
@@ -1139,6 +1123,7 @@
     "2043-09-05": "Eid al-Fitr (estimated)",
     "2043-09-06": "Eid al-Fitr (estimated)",
     "2043-09-07": "Eid al-Fitr (observed, estimated)",
+    "2043-09-08": "Eid al-Fitr (observed, estimated)",
     "2043-11-12": "Eid al-Adha (estimated)",
     "2043-12-03": "Islamic New Year (estimated)",
     "2043-12-25": "Christmas Day",
@@ -1195,6 +1180,7 @@
     "2046-08-04": "Eid al-Fitr (estimated)",
     "2046-08-05": "Eid al-Fitr (estimated)",
     "2046-08-06": "Eid al-Fitr (observed, estimated)",
+    "2046-08-07": "Eid al-Fitr (observed, estimated)",
     "2046-10-10": "Eid al-Adha (estimated)",
     "2046-10-31": "Islamic New Year (estimated)",
     "2046-12-25": "Christmas Day",
diff --git a/snapshots/countries/KH_COMMON.json b/snapshots/countries/KH_COMMON.json
index ddf1f0c4..0efb6ce2 100644
--- a/snapshots/countries/KH_COMMON.json
+++ b/snapshots/countries/KH_COMMON.json
@@ -740,6 +740,7 @@
     "2024-11-14": "Water Festival",
     "2024-11-15": "Water Festival",
     "2024-11-16": "Water Festival",
+    "2024-12-29": "Peace Day in Cambodia",
     "2025-01-01": "International New Year Day",
     "2025-01-07": "Day of Victory over the Genocidal Regime",
     "2025-03-08": "International Women's Rights Day",
@@ -761,6 +762,7 @@
     "2025-11-05": "Water Festival",
     "2025-11-06": "Water Festival",
     "2025-11-09": "National Independence Day",
+    "2025-12-29": "Peace Day in Cambodia",
     "2026-01-01": "International New Year Day",
     "2026-01-07": "Day of Victory over the Genocidal Regime",
     "2026-03-08": "International Women's Rights Day",
@@ -781,6 +783,7 @@
     "2026-11-23": "Water Festival",
     "2026-11-24": "Water Festival",
     "2026-11-25": "Water Festival",
+    "2026-12-29": "Peace Day in Cambodia",
     "2027-01-01": "International New Year Day",
     "2027-01-07": "Day of Victory over the Genocidal Regime",
     "2027-03-08": "International Women's Rights Day",
@@ -802,6 +805,7 @@
     "2027-11-12": "Water Festival",
     "2027-11-13": "Water Festival",
     "2027-11-14": "Water Festival",
+    "2027-12-29": "Peace Day in Cambodia",
     "2028-01-01": "International New Year Day",
     "2028-01-07": "Day of Victory over the Genocidal Regime",
     "2028-03-08": "International Women's Rights Day",
@@ -823,6 +827,7 @@
     "2028-11-01": "Water Festival",
     "2028-11-02": "Water Festival",
     "2028-11-09": "National Independence Day",
+    "2028-12-29": "Peace Day in Cambodia",
     "2029-01-01": "International New Year Day",
     "2029-01-07": "Day of Victory over the Genocidal Regime",
     "2029-03-08": "International Women's Rights Day",
@@ -843,6 +848,7 @@
     "2029-11-19": "Water Festival",
     "2029-11-20": "Water Festival",
     "2029-11-21": "Water Festival",
+    "2029-12-29": "Peace Day in Cambodia",
     "2030-01-01": "International New Year Day",
     "2030-01-07": "Day of Victory over the Genocidal Regime",
     "2030-03-08": "International Women's Rights Day",
@@ -863,6 +869,7 @@
     "2030-11-08": "Water Festival",
     "2030-11-09": "National Independence Day; Water Festival",
     "2030-11-10": "Water Festival",
+    "2030-12-29": "Peace Day in Cambodia",
     "2031-01-01": "International New Year Day",
     "2031-01-07": "Day of Victory over the Genocidal Regime",
     "2031-03-08": "International Women's Rights Day",
@@ -883,6 +890,7 @@
     "2031-11-27": "Water Festival",
     "2031-11-28": "Water Festival",
     "2031-11-29": "Water Festival",
+    "2031-12-29": "Peace Day in Cambodia",
     "2032-01-01": "International New Year Day",
     "2032-01-07": "Day of Victory over the Genocidal Regime",
     "2032-03-08": "International Women's Rights Day",
@@ -904,6 +912,7 @@
     "2032-11-16": "Water Festival",
     "2032-11-17": "Water Festival",
     "2032-11-18": "Water Festival",
+    "2032-12-29": "Peace Day in Cambodia",
     "2033-01-01": "International New Year Day",
     "2033-01-07": "Day of Victory over the Genocidal Regime",
     "2033-03-08": "International Women's Rights Day",
@@ -924,6 +933,7 @@
     "2033-11-06": "Water Festival",
     "2033-11-07": "Water Festival",
     "2033-11-09": "National Independence Day",
+    "2033-12-29": "Peace Day in Cambodia",
     "2034-01-01": "International New Year Day",
     "2034-01-07": "Day of Victory over the Genocidal Regime",
     "2034-03-08": "International Women's Rights Day",
@@ -945,6 +955,7 @@
     "2034-11-24": "Water Festival",
     "2034-11-25": "Water Festival",
     "2034-11-26": "Water Festival",
+    "2034-12-29": "Peace Day in Cambodia",
     "2035-01-01": "International New Year Day",
     "2035-01-07": "Day of Victory over the Genocidal Regime",
     "2035-03-08": "International Women's Rights Day",
@@ -966,6 +977,7 @@
     "2035-11-14": "Water Festival",
     "2035-11-15": "Water Festival",
     "2035-11-16": "Water Festival",
+    "2035-12-29": "Peace Day in Cambodia",
     "2036-01-01": "International New Year Day",
     "2036-01-07": "Day of Victory over the Genocidal Regime",
     "2036-03-08": "International Women's Rights Day",
@@ -986,6 +998,7 @@
     "2036-11-03": "Water Festival",
     "2036-11-04": "Water Festival",
     "2036-11-09": "National Independence Day",
+    "2036-12-29": "Peace Day in Cambodia",
     "2037-01-01": "International New Year Day",
     "2037-01-07": "Day of Victory over the Genocidal Regime",
     "2037-03-08": "International Women's Rights Day",
@@ -1007,6 +1020,7 @@
     "2037-11-21": "Water Festival",
     "2037-11-22": "Water Festival",
     "2037-11-23": "Water Festival",
+    "2037-12-29": "Peace Day in Cambodia",
     "2038-01-01": "International New Year Day",
     "2038-01-07": "Day of Victory over the Genocidal Regime",
     "2038-03-08": "International Women's Rights Day",
@@ -1028,6 +1042,7 @@
     "2038-11-10": "Water Festival",
     "2038-11-11": "Water Festival",
     "2038-11-12": "Water Festival",
+    "2038-12-29": "Peace Day in Cambodia",
     "2039-01-01": "International New Year Day",
     "2039-01-07": "Day of Victory over the Genocidal Regime",
     "2039-03-08": "International Women's Rights Day",
@@ -1049,6 +1064,7 @@
     "2039-10-31": "Water Festival",
     "2039-11-01": "Water Festival",
     "2039-11-09": "National Independence Day",
+    "2039-12-29": "Peace Day in Cambodia",
     "2040-01-01": "International New Year Day",
     "2040-01-07": "Day of Victory over the Genocidal Regime",
     "2040-03-08": "International Women's Rights Day",
@@ -1070,6 +1086,7 @@
     "2040-11-17": "Water Festival",
     "2040-11-18": "Water Festival",
     "2040-11-19": "Water Festival",
+    "2040-12-29": "Peace Day in Cambodia",
     "2041-01-01": "International New Year Day",
     "2041-01-07": "Day of Victory over the Genocidal Regime",
     "2041-03-08": "International Women's Rights Day",
@@ -1089,6 +1106,7 @@
     "2041-11-07": "Water Festival",
     "2041-11-08": "Water Festival",
     "2041-11-09": "National Independence Day",
+    "2041-12-29": "Peace Day in Cambodia",
     "2042-01-01": "International New Year Day",
     "2042-01-07": "Day of Victory over the Genocidal Regime",
     "2042-03-08": "International Women's Rights Day",
@@ -1110,6 +1128,7 @@
     "2042-11-25": "Water Festival",
     "2042-11-26": "Water Festival",
     "2042-11-27": "Water Festival",
+    "2042-12-29": "Peace Day in Cambodia",
     "2043-01-01": "International New Year Day",
     "2043-01-07": "Day of Victory over the Genocidal Regime",
     "2043-03-08": "International Women's Rights Day",
@@ -1131,6 +1150,7 @@
     "2043-11-15": "Water Festival",
     "2043-11-16": "Water Festival",
     "2043-11-17": "Water Festival",
+    "2043-12-29": "Peace Day in Cambodia",
     "2044-01-01": "International New Year Day",
     "2044-01-07": "Day of Victory over the Genocidal Regime",
     "2044-03-08": "International Women's Rights Day",
@@ -1152,6 +1172,7 @@
     "2044-11-04": "Water Festival",
     "2044-11-05": "Water Festival",
     "2044-11-09": "National Independence Day",
+    "2044-12-29": "Peace Day in Cambodia",
     "2045-01-01": "International New Year Day",
     "2045-01-07": "Day of Victory over the Genocidal Regime",
     "2045-03-08": "International Women's Rights Day",
@@ -1173,6 +1194,7 @@
     "2045-11-22": "Water Festival",
     "2045-11-23": "Water Festival",
     "2045-11-24": "Water Festival",
+    "2045-12-29": "Peace Day in Cambodia",
     "2046-01-01": "International New Year Day",
     "2046-01-07": "Day of Victory over the Genocidal Regime",
     "2046-03-08": "International Women's Rights Day",
@@ -1194,6 +1216,7 @@
     "2046-11-12": "Water Festival",
     "2046-11-13": "Water Festival",
     "2046-11-14": "Water Festival",
+    "2046-12-29": "Peace Day in Cambodia",
     "2047-01-01": "International New Year Day",
     "2047-01-07": "Day of Victory over the Genocidal Regime",
     "2047-03-08": "International Women's Rights Day",
@@ -1215,6 +1238,7 @@
     "2047-11-02": "Water Festival",
     "2047-11-03": "Water Festival",
     "2047-11-09": "National Independence Day",
+    "2047-12-29": "Peace Day in Cambodia",
     "2048-01-01": "International New Year Day",
     "2048-01-07": "Day of Victory over the Genocidal Regime",
     "2048-03-08": "International Women's Rights Day",
@@ -1235,6 +1259,7 @@
     "2048-11-19": "Water Festival",
     "2048-11-20": "Water Festival",
     "2048-11-21": "Water Festival",
+    "2048-12-29": "Peace Day in Cambodia",
     "2049-01-01": "International New Year Day",
     "2049-01-07": "Day of Victory over the Genocidal Regime",
     "2049-03-08": "International Women's Rights Day",
@@ -1255,6 +1280,7 @@
     "2049-11-08": "Water Festival",
     "2049-11-09": "National Independence Day; Water Festival",
     "2049-11-10": "Water Festival",
+    "2049-12-29": "Peace Day in Cambodia",
     "2050-01-01": "International New Year Day",
     "2050-01-07": "Day of Victory over the Genocidal Regime",
     "2050-03-08": "International Women's Rights Day",
@@ -1274,5 +1300,6 @@
     "2050-11-09": "National Independence Day",
     "2050-11-27": "Water Festival",
     "2050-11-28": "Water Festival",
-    "2050-11-29": "Water Festival"
+    "2050-11-29": "Water Festival",
+    "2050-12-29": "Peace Day in Cambodia"
 }


Test patch:
diff --git a/tests/countries/test_brunei.py b/tests/countries/test_brunei.py
index d2fe7587..8c6f9413 100644
--- a/tests/countries/test_brunei.py
+++ b/tests/countries/test_brunei.py
@@ -28,7 +28,11 @@ class TestBrunei(CommonCountryTests, TestCase):
         self.assertNoHolidays(Brunei(years=1983))
 
     def test_special_holidays(self):
-        self.assertHoliday("2017-10-05")
+        self.assertHoliday(
+            "1998-08-10",
+            "2004-09-09",
+            "2017-10-05",
+        )
 
     def test_2022(self):
         self.assertHolidays(
@@ -36,16 +40,15 @@ class TestBrunei(CommonCountryTests, TestCase):
             ("2022-01-01", "Awal Tahun Masihi"),
             ("2022-02-01", "Tahun Baru Cina"),
             ("2022-02-23", "Hari Kebangsaan"),
-            ("2022-03-01", "Israk dan Mikraj"),
+            ("2022-02-28", "Israk dan Mikraj"),
             ("2022-04-03", "Hari Pertama Berpuasa"),
             ("2022-04-04", "Hari Pertama Berpuasa (diperhatikan)"),
             ("2022-04-19", "Hari Nuzul Al-Quran"),
+            ("2022-05-02", "Hari Raya Aidil Fitri"),
             ("2022-05-03", "Hari Raya Aidil Fitri"),
             ("2022-05-04", "Hari Raya Aidil Fitri"),
-            ("2022-05-05", "Hari Raya Aidil Fitri"),
             ("2022-05-31", "Hari Angkatan Bersenjata Diraja Brunei"),
-            ("2022-07-10", "Hari Raya Aidil Adha"),
-            ("2022-07-11", "Hari Raya Aidil Adha (diperhatikan)"),
+            ("2022-07-09", "Hari Raya Aidil Adha"),
             ("2022-07-15", "Hari Keputeraan KDYMM Sultan Brunei"),
             ("2022-07-16", "Hari Keputeraan KDYMM Sultan Brunei (diperhatikan)"),
             ("2022-07-30", "Awal Tahun Hijrah"),
@@ -77,6 +80,54 @@ class TestBrunei(CommonCountryTests, TestCase):
             ("2023-12-25", "Hari Natal"),
         )
 
+    def test_2024(self):
+        self.assertHolidays(
+            Brunei(years=2024),
+            ("2024-01-01", "Awal Tahun Masihi"),
+            ("2024-02-08", "Israk dan Mikraj"),
+            ("2024-02-10", "Tahun Baru Cina"),
+            ("2024-02-23", "Hari Kebangsaan"),
+            ("2024-02-24", "Hari Kebangsaan (diperhatikan)"),
+            ("2024-03-12", "Hari Pertama Berpuasa"),
+            ("2024-03-28", "Hari Nuzul Al-Quran"),
+            ("2024-04-10", "Hari Raya Aidil Fitri"),
+            ("2024-04-11", "Hari Raya Aidil Fitri"),
+            ("2024-04-12", "Hari Raya Aidil Fitri"),
+            ("2024-04-13", "Hari Raya Aidil Fitri (diperhatikan)"),
+            ("2024-05-31", "Hari Angkatan Bersenjata Diraja Brunei"),
+            ("2024-06-01", "Hari Angkatan Bersenjata Diraja Brunei (diperhatikan)"),
+            ("2024-06-17", "Hari Raya Aidil Adha"),
+            ("2024-07-07", "Awal Tahun Hijrah"),
+            ("2024-07-08", "Awal Tahun Hijrah (diperhatikan)"),
+            ("2024-07-15", "Hari Keputeraan KDYMM Sultan Brunei"),
+            ("2024-09-16", "Maulidur Rasul"),
+            ("2024-12-25", "Hari Natal"),
+        )
+
+    def test_2025(self):
+        self.assertHolidays(
+            Brunei(years=2025),
+            ("2025-01-01", "Awal Tahun Masihi"),
+            ("2025-01-27", "Israk dan Mikraj"),
+            ("2025-01-29", "Tahun Baru Cina"),
+            ("2025-02-23", "Hari Kebangsaan"),
+            ("2025-02-24", "Hari Kebangsaan (diperhatikan)"),
+            ("2025-03-02", "Hari Pertama Berpuasa"),
+            ("2025-03-03", "Hari Pertama Berpuasa (diperhatikan)"),
+            ("2025-03-18", "Hari Nuzul Al-Quran"),
+            ("2025-03-31", "Hari Raya Aidil Fitri"),
+            ("2025-04-01", "Hari Raya Aidil Fitri"),
+            ("2025-04-02", "Hari Raya Aidil Fitri"),
+            ("2025-05-31", "Hari Angkatan Bersenjata Diraja Brunei"),
+            ("2025-06-07", "Hari Raya Aidil Adha"),
+            ("2025-06-27", "Awal Tahun Hijrah"),
+            ("2025-06-28", "Awal Tahun Hijrah (diperhatikan)"),
+            ("2025-07-15", "Hari Keputeraan KDYMM Sultan Brunei"),
+            ("2025-09-05", "Maulidur Rasul"),
+            ("2025-09-06", "Maulidur Rasul (diperhatikan)"),
+            ("2025-12-25", "Hari Natal"),
+        )
+
     def test_national_day(self):
         self.assertHoliday(f"{year}-02-23" for year in range(1984, 2077))
 
@@ -87,6 +138,8 @@ class TestBrunei(CommonCountryTests, TestCase):
             "2014-02-24",
             "2018-02-24",
             "2020-02-24",
+            "2024-02-24",
+            "2025-02-24",
         )
 
     def test_armed_forces_day(self):
@@ -99,6 +152,7 @@ class TestBrunei(CommonCountryTests, TestCase):
             "2015-06-01",
             "2019-06-01",
             "2020-06-01",
+            "2024-06-01",
         )
 
     def test_sultan_hassanal_bolkiah_birthday(self):
diff --git a/tests/countries/test_cambodia.py b/tests/countries/test_cambodia.py
index 9160fecc..a2796661 100644
--- a/tests/countries/test_cambodia.py
+++ b/tests/countries/test_cambodia.py
@@ -161,26 +161,25 @@ class TestCambodia(CommonCountryTests, TestCase):
 
     def test_king_sihamoni_birthday(self):
         name = "ព្រះរាជពិធីបុណ្យចម្រើនព្រះជន្ម ព្រះករុណា ព្រះបាទសម្តេចព្រះបរមនាថ នរោត្តម សីហមុនី"
-        self.assertNoHolidayName(name, 2004)
         self.assertHolidayName(name, (f"{year}-05-13" for year in range(2005, 2020)))
         self.assertHolidayName(name, (f"{year}-05-14" for year in range(2005, 2050)))
         self.assertHolidayName(name, (f"{year}-05-15" for year in range(2005, 2020)))
+        self.assertNoHolidayName(name, range(1993, 2005))
 
     def test_national_day_of_remembrance(self):
         name = "ទិវាជាតិនៃការចងចាំ"
-        self.assertNoHolidayName(name, 2017)
         self.assertHolidayName(name, (f"{year}-05-20" for year in range(2018, 2020)))
-        self.assertNoHolidayName(name, 2020)
+        self.assertNoHolidayName(name, range(1993, 2018), range(2020, 2050))
 
     def test_international_children_day(self):
         name = "ទិវាកុមារអន្តរជាតិ"
         self.assertHolidayName(name, (f"{year}-06-01" for year in range(1993, 2020)))
-        self.assertNoHolidayName(name, 2020)
+        self.assertNoHolidayName(name, range(2020, 2050))
 
     def test_queen_mother_monineath_birthday(self):
         name = "ព្រះរាជពិធីបុណ្យចម្រើនព្រះជន្ម សម្តេចព្រះមហាក្សត្រី ព្រះវររាជមាតា នរោត្តម មុនិនាថ សីហនុ"
-        self.assertNoHolidayName(name, 1993)
         self.assertHolidayName(name, (f"{year}-06-18" for year in range(1994, 2050)))
+        self.assertNoHolidayName(name, 1993)
 
     def test_constitution_day(self):
         self.assertHolidayName(
@@ -193,13 +192,13 @@ class TestCambodia(CommonCountryTests, TestCase):
             " នរោត្តម សីហនុ ព្រះមហាវីរក្សត្រ ព្រះវររាជបិតាឯករាជ្យ បូរណភាពទឹកដី"
             " និងឯកភាពជាតិខ្មែរ ព្រះបរមរតនកោដ្ឋ"
         )
-        self.assertNoHolidayName(name, 2011)
         self.assertHolidayName(name, (f"{year}-10-15" for year in range(2012, 2050)))
+        self.assertNoHolidayName(name, range(1993, 2012))
 
     def test_paris_peace_agreement_day(self):
         name = "ទិវារំលឹកសន្ធិសញ្ញាសន្តិភាពទីក្រុងប៉ារីស"
         self.assertHolidayName(name, (f"{year}-10-23" for year in range(1993, 2020)))
-        self.assertNoHolidayName(name, 2020)
+        self.assertNoHolidayName(name, range(2020, 2050))
 
     def test_king_sihamoni_coronation_day(self):
         name = (
@@ -207,8 +206,8 @@ class TestCambodia(CommonCountryTests, TestCase):
             "ព្រះបាទសម្តេចព្រះបរមនាថ នរោត្តម សីហមុនី "
             "ព្រះមហាក្សត្រនៃព្រះរាជាណាចក្រកម្ពុជា"
         )
-        self.assertNoHolidayName(name, 2003)
         self.assertHolidayName(name, (f"{year}-10-29" for year in range(2004, 2050)))
+        self.assertNoHolidayName(name, range(1993, 2004))
 
     def test_national_independence_day(self):
         self.assertHolidayName("ពិធីបុណ្យឯករាជ្យជាតិ", (f"{year}-11-09" for year in range(1993, 2050)))
@@ -216,7 +215,12 @@ class TestCambodia(CommonCountryTests, TestCase):
     def test_international_human_rights_day(self):
         name = "ទិវាសិទ្ធិមនុស្សអន្តរជាតិ"
         self.assertHolidayName(name, (f"{year}-12-10" for year in range(1993, 2020)))
-        self.assertNoHolidayName(name, 2020)
+        self.assertNoHolidayName(name, range(2020, 2050))
+
+    def test_peace_day_in_cambodia(self):
+        name = "ទិវាសន្តិភាពនៅកម្ពុជា"
+        self.assertHolidayName(name, (f"{year}-12-29" for year in range(2024, 2050)))
+        self.assertNoHolidayName(name, range(1993, 2024))
 
     def test_pchum_ben(self):
         name = "ពិធីបុណ្យភ្ផុំបិណ្ឌ"
@@ -284,7 +288,6 @@ class TestCambodia(CommonCountryTests, TestCase):
             "2023-11-27",
             "2023-11-28",
         )
-        self.assertNoHolidayName(name, 2158)
 
     def test_l10n_default(self):
         self.assertLocalizedHolidays(