Repository: vacanza/holidays
Pull request #2679 (2025-06-25 20:26:54)

Update Uzbekistan holidays: add 2024-2025 exact dates
<!--
  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.
-->

Update Uzbekistan holidays.

## 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.
-->

- [x] 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.md
[docs]: https://github.com/vacanza/holidays/tree/dev/docs/source


coderabbitai[bot]: <!-- This is an auto-generated comment: summarize by coderabbit.ai -->
<!-- This is an auto-generated comment: review in progress by coderabbit.ai -->

> [!NOTE]
> Currently processing new changes in this PR. This may take a few minutes, please wait...
> 
> <details>
> <summary>📥 Commits</summary>
> 
> Reviewing files that changed from the base of the PR and between ee60201ecbca35317f4a12737bcbb4a5080da2d1 and fbdfdf57c3195e1f51629e7caf1895c830125c0a.
> 
> </details>
> 
> <details>
> <summary>📒 Files selected for processing (3)</summary>
> 
> * `holidays/countries/uzbekistan.py` (5 hunks)
> * `snapshots/countries/UZ_COMMON.json` (3 hunks)
> * `tests/countries/test_uzbekistan.py` (3 hunks)
> 
> </details>
> 
> ```ascii
>  ________________________________________________________________
> < Fully armed and operationally intelligent code reviewer bunny. >
>  ----------------------------------------------------------------
>   \
>    \   (\__/)
>        (•ㅅ•)
>        / 　 づ
> ```

<!-- end of auto-generated comment: review in progress by coderabbit.ai -->
<!-- usage_tips_start -->

> [!TIP]
> <details>
> <summary>You can disable the changed files summary in the walkthrough.</summary>
> 
> Disable the `reviews.changed_files_summary` setting in your project's settings in CodeRabbit to disable the changed files summary in the walkthrough.
> 
> </details>

<!-- usage_tips_end -->
<!-- finishing_touch_checkbox_start -->

<details open="true">
<summary>✨ Finishing Touches</summary>

- [ ] <!-- {"checkboxId": "7962f53c-55bc-4827-bfbf-6a18da830691"} --> 📝 Generate Docstrings
<details open="true">
<summary>🧪 Generate Unit Tests</summary>

- [ ] <!-- {"checkboxId": "f47ac10b-58cc-4372-a567-0e02b2c3d479", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} -->   Create PR with Unit Tests
- [ ] <!-- {"checkboxId": "07f1e7d6-8a8e-4e23-9900-8731c2c87f58", "radioGroupId": "utg-output-choice-group-unknown_comment_id"} -->   Post Copyable Unit Tests in Comment

</details>

</details>

<!-- finishing_touch_checkbox_end -->
<!-- tips_start -->

---

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=vacanza/holidays&utm_content=2679):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Explain this complex logic.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai explain this code block.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and explain its main purpose.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

### Support

Need help? Create a ticket on our [support page](https://www.coderabbit.ai/contact-us/support) for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this PR.
- `@coderabbitai auto-generate unit tests` to generate unit tests for this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->
codecov[bot]: ## [Codecov](https://app.codecov.io/gh/vacanza/holidays/pull/2679?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 [(`ee60201`)](https://app.codecov.io/gh/vacanza/holidays/commit/ee60201ecbca35317f4a12737bcbb4a5080da2d1?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=vacanza) to head [(`fbdfdf5`)](https://app.codecov.io/gh/vacanza/holidays/commit/fbdfdf57c3195e1f51629e7caf1895c830125c0a?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     #2679   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files          251       251           
  Lines        15286     15286           
  Branches      2095      2095           
=========================================
  Hits         15286     15286           
```

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/vacanza/holidays/pull/2679?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).

<details><summary> :rocket: New features to boost your workflow: </summary>

- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
</details>

Patch:
diff --git a/.github/workflows/ci-cd.yml b/.github/workflows/ci-cd.yml
index 0b8291ac..430b8091 100644
--- a/.github/workflows/ci-cd.yml
+++ b/.github/workflows/ci-cd.yml
@@ -274,7 +274,7 @@ jobs:
           done
 
       - name: Sign the files using Sigstore
-        uses: sigstore/gh-action-sigstore-python@f514d46b907ebcd5bedc05145c03b69c1edd8b46
+        uses: sigstore/gh-action-sigstore-python@f7ad0af51a5648d09a20d00370f0a91c3bdf8f84
         with:
           inputs: |
             ./dist/*.tar.gz
diff --git a/holidays/countries/uzbekistan.py b/holidays/countries/uzbekistan.py
index 988d5887..4e97619d 100644
--- a/holidays/countries/uzbekistan.py
+++ b/holidays/countries/uzbekistan.py
@@ -55,7 +55,7 @@ class Uzbekistan(ObservedHolidayBase, InternationalHolidays, IslamicHolidays, St
         super().__init__(*args, **kwargs)
 
     def _is_observed(self, dt: date) -> bool:
-        # Commencement of the new Labor Code
+        # Commencement of the new Labor Code.
         return dt >= date(2023, APR, 30)
 
     def _populate_public_holidays(self):
@@ -132,6 +132,8 @@ class UzbekistanIslamicHolidays(_CustomIslamicHolidays):
         2021: (JUL, 20),
         2022: (JUL, 9),
         2023: (JUN, 28),
+        2024: (JUN, 16),
+        2025: (JUN, 6),
     }
 
     EID_AL_FITR_DATES = {
@@ -154,10 +156,24 @@ class UzbekistanIslamicHolidays(_CustomIslamicHolidays):
         2022: (MAY, 2),
         2023: (APR, 21),
         2024: (APR, 10),
+        2025: (MAR, 30),
     }
 
 
 class UzbekistanStaticHolidays:
+    """Uzbekistan special holidays.
+
+    References:
+        * [2018](https://web.archive.org/web/20250610012705/https://lex.uz/ru/docs/3479237)
+        * [2019](https://web.archive.org/web/20250521124231/https://lex.uz/docs/-4054698)
+        * [2020](https://web.archive.org/web/20250522053834/https://lex.uz/docs/-4595638)
+        * [2021](https://web.archive.org/web/20250522053822/https://lex.uz/docs/-5137156)
+        * [2022](https://web.archive.org/web/20250522053831/https://lex.uz/docs/-5784917)
+        * [2023](https://web.archive.org/web/20250522053822/https://lex.uz/docs/-6324664)
+        * [2024](https://web.archive.org/web/20250522053835/https://lex.uz/docs/-6704048)
+        * [2025](https://web.archive.org/web/20250422135040/https://lex.uz/docs/-7275687)
+    """
+
     # Date format (see strftime() Format Codes)
     substituted_date_format = tr("%d/%m %Y")
     # Day off (substituted from %s).
@@ -171,7 +187,7 @@ class UzbekistanStaticHolidays:
             (JAN, 3, JAN, 6),
             (MAR, 19, MAR, 17),
             (MAR, 22, MAR, 24),
-            (MAR, 30, additional_day_off),
+            (MAR, 20, additional_day_off),
             (AUG, 23, AUG, 25),
             (AUG, 24, AUG, 26),
             (AUG, 31, additional_day_off),
@@ -232,4 +248,5 @@ class UzbekistanStaticHolidays:
             (DEC, 30, DEC, 14),
             (DEC, 31, additional_day_off),
         ),
+        2025: (JAN, 2, JAN, 4),
     }
diff --git a/snapshots/countries/UZ_COMMON.json b/snapshots/countries/UZ_COMMON.json
index d5db3159..ba5c41c3 100644
--- a/snapshots/countries/UZ_COMMON.json
+++ b/snapshots/countries/UZ_COMMON.json
@@ -230,9 +230,9 @@
     "2018-01-03": "Day off (substituted from 01/06/2018)",
     "2018-03-08": "Women's Day",
     "2018-03-19": "Day off (substituted from 03/17/2018)",
+    "2018-03-20": "Additional day off by Presidential decree",
     "2018-03-21": "Nowruz",
     "2018-03-22": "Day off (substituted from 03/24/2018)",
-    "2018-03-30": "Additional day off by Presidential decree",
     "2018-05-09": "Day of Memory and Honor",
     "2018-06-15": "Eid al-Fitr",
     "2018-08-21": "Eid al-Adha",
@@ -333,8 +333,8 @@
     "2024-04-11": "Additional day off by Presidential decree",
     "2024-04-12": "Day off (substituted from 04/13/2024)",
     "2024-05-09": "Day of Memory and Honor",
-    "2024-06-16": "Eid al-Adha (estimated)",
-    "2024-06-17": "Eid al-Adha (observed, estimated)",
+    "2024-06-16": "Eid al-Adha",
+    "2024-06-17": "Eid al-Adha (observed)",
     "2024-06-18": "Additional day off by Presidential decree",
     "2024-09-01": "Independence Day",
     "2024-09-02": "Independence Day (observed)",
@@ -345,13 +345,14 @@
     "2024-12-30": "Day off (substituted from 12/14/2024)",
     "2024-12-31": "Additional day off by Presidential decree",
     "2025-01-01": "New Year's Day",
+    "2025-01-02": "Day off (substituted from 01/04/2025)",
     "2025-03-08": "Women's Day",
     "2025-03-10": "Women's Day (observed)",
     "2025-03-21": "Nowruz",
-    "2025-03-30": "Eid al-Fitr (estimated)",
-    "2025-03-31": "Eid al-Fitr (observed, estimated)",
+    "2025-03-30": "Eid al-Fitr",
+    "2025-03-31": "Eid al-Fitr (observed)",
     "2025-05-09": "Day of Memory and Honor",
-    "2025-06-06": "Eid al-Adha (estimated)",
+    "2025-06-06": "Eid al-Adha",
     "2025-09-01": "Independence Day",
     "2025-10-01": "Teachers and Instructors Day",
     "2025-12-08": "Constitution Day",


Test patch:
diff --git a/tests/countries/test_uzbekistan.py b/tests/countries/test_uzbekistan.py
index b75176a0..c932d00c 100644
--- a/tests/countries/test_uzbekistan.py
+++ b/tests/countries/test_uzbekistan.py
@@ -13,13 +13,15 @@
 from unittest import TestCase
 
 from holidays.countries.uzbekistan import Uzbekistan, UZ, UZB
-from tests.common import CommonCountryTests
+from tests.common import CommonCountryTests, WorkingDayTests
 
 
-class TestUzbekistan(CommonCountryTests, TestCase):
+class TestUzbekistan(CommonCountryTests, WorkingDayTests, TestCase):
     @classmethod
     def setUpClass(cls):
-        super().setUpClass(Uzbekistan, years=range(1992, 2050))
+        years = range(1992, 2050)
+        super().setUpClass(Uzbekistan, years=years)
+        cls.no_estimated_holidays = Uzbekistan(years=years, islamic_show_estimated=False)
 
     def test_country_aliases(self):
         self.assertAliases(Uzbekistan, UZ, UZB)
@@ -27,6 +29,98 @@ class TestUzbekistan(CommonCountryTests, TestCase):
     def test_no_holidays(self):
         self.assertNoHolidays(Uzbekistan(years=1991))
 
+    def test_special_holidays(self):
+        self.assertHoliday(
+            "2018-01-02",
+            "2018-03-20",
+            "2018-08-31",
+            "2019-01-02",
+            "2019-03-22",
+            "2019-09-02",
+            "2020-03-23",
+            "2021-05-14",
+            "2021-09-02",
+            "2021-09-03",
+            "2021-12-31",
+            "2022-01-03",
+            "2022-03-22",
+            "2022-03-23",
+            "2022-05-03",
+            "2022-07-11",
+            "2022-09-02",
+            "2023-01-02",
+            "2023-04-24",
+            "2023-06-29",
+            "2023-06-30",
+            "2024-03-22",
+            "2024-04-11",
+            "2024-06-18",
+            "2024-09-03",
+            "2024-12-31",
+        )
+
+    def test_substituted_holidays(self):
+        self.assertHoliday(
+            "2018-01-03",
+            "2018-03-19",
+            "2018-03-22",
+            "2018-08-23",
+            "2018-08-24",
+            "2018-09-03",
+            "2018-09-04",
+            "2018-12-31",
+            "2019-01-03",
+            "2019-06-06",
+            "2019-09-03",
+            "2019-12-31",
+            "2020-01-02",
+            "2020-08-31",
+            "2021-03-22",
+            "2021-07-21",
+            "2021-07-22",
+            "2022-01-04",
+            "2022-05-04",
+            "2022-07-12",
+            "2023-01-03",
+            "2023-03-20",
+            "2023-03-22",
+            "2024-01-02",
+            "2024-04-12",
+            "2024-12-30",
+            "2025-01-02",
+        )
+
+    def test_workdays(self):
+        self.assertWorkingDay(
+            "2018-01-06",
+            "2018-03-17",
+            "2018-03-24",
+            "2018-08-25",
+            "2018-08-26",
+            "2018-09-08",
+            "2018-09-15",
+            "2018-12-29",
+            "2019-01-05",
+            "2019-06-01",
+            "2019-09-07",
+            "2019-12-28",
+            "2020-01-04",
+            "2020-08-29",
+            "2021-03-27",
+            "2021-07-17",
+            "2021-07-24",
+            "2022-01-08",
+            "2022-05-07",
+            "2022-07-16",
+            "2023-01-07",
+            "2023-03-11",
+            "2023-03-25",
+            "2024-01-06",
+            "2024-04-13",
+            "2024-12-14",
+            "2025-01-04",
+        )
+
     def test_new_years_day(self):
         self.assertHolidayName("Yangi yil", (f"{year}-01-01" for year in range(1992, 2050)))
 
@@ -60,24 +154,32 @@ class TestUzbekistan(CommonCountryTests, TestCase):
         self.assertNoHolidayName(name, 1992)
 
     def test_eid_al_fitr(self):
+        name = "Ro‘za hayit"
         self.assertHolidayName(
-            "Ro‘za hayit",
+            name,
             "2020-05-24",
             "2021-05-13",
             "2022-05-02",
             "2023-04-21",
+            "2024-04-10",
+            "2025-03-30",
         )
+        self.assertHolidayName(name, self.no_estimated_holidays, range(1992, 2050))
 
     def test_eid_al_adha(self):
+        name = "Qurbon hayit"
         self.assertHolidayName(
-            "Qurbon hayit",
+            name,
             "2006-01-10",
             "2006-12-30",
             "2020-07-31",
             "2021-07-20",
             "2022-07-09",
             "2023-06-28",
+            "2024-06-16",
+            "2025-06-06",
         )
+        self.assertHolidayName(name, self.no_estimated_holidays, range(1992, 2050))
 
     def test_observed(self):
         dt = (
@@ -90,41 +192,41 @@ class TestUzbekistan(CommonCountryTests, TestCase):
         self.assertNoNonObservedHoliday(dt)
 
     def test2020(self):
-        self.assertHolidayDates(
+        self.assertHolidays(
             Uzbekistan(years=2020),
-            "2020-01-01",
-            "2020-01-02",
-            "2020-03-08",
-            "2020-03-21",
-            "2020-03-23",
-            "2020-05-09",
-            "2020-05-24",
-            "2020-07-31",
-            "2020-08-31",
-            "2020-09-01",
-            "2020-10-01",
-            "2020-12-08",
+            ("2020-01-01", "Yangi yil"),
+            ("2020-01-02", "Dam olish kuni (04/01 2020 dan ko‘chirilgan)"),
+            ("2020-03-08", "Xotin-qizlar kuni"),
+            ("2020-03-21", "Navro‘z bayrami"),
+            ("2020-03-23", "Prezidentining farmoni bilan qo‘shimcha dam olish kuni"),
+            ("2020-05-09", "Xotira va qadrlash kuni"),
+            ("2020-05-24", "Ro‘za hayit"),
+            ("2020-07-31", "Qurbon hayit"),
+            ("2020-08-31", "Dam olish kuni (29/08 2020 dan ko‘chirilgan)"),
+            ("2020-09-01", "Mustaqillik kuni"),
+            ("2020-10-01", "O‘qituvchi va murabbiylar kuni"),
+            ("2020-12-08", "O‘zbekiston Respublikasi Konstitutsiyasi kuni"),
         )
 
     def test2021(self):
-        self.assertHolidayDates(
+        self.assertHolidays(
             Uzbekistan(years=2021),
-            "2021-01-01",
-            "2021-03-08",
-            "2021-03-21",
-            "2021-03-22",
-            "2021-05-09",
-            "2021-05-13",
-            "2021-05-14",
-            "2021-07-20",
-            "2021-07-21",
-            "2021-07-22",
-            "2021-09-01",
-            "2021-09-02",
-            "2021-09-03",
-            "2021-10-01",
-            "2021-12-08",
-            "2021-12-31",
+            ("2021-01-01", "Yangi yil"),
+            ("2021-03-08", "Xotin-qizlar kuni"),
+            ("2021-03-21", "Navro‘z bayrami"),
+            ("2021-03-22", "Dam olish kuni (27/03 2021 dan ko‘chirilgan)"),
+            ("2021-05-09", "Xotira va qadrlash kuni"),
+            ("2021-05-13", "Ro‘za hayit"),
+            ("2021-05-14", "Prezidentining farmoni bilan qo‘shimcha dam olish kuni"),
+            ("2021-07-20", "Qurbon hayit"),
+            ("2021-07-21", "Dam olish kuni (17/07 2021 dan ko‘chirilgan)"),
+            ("2021-07-22", "Dam olish kuni (24/07 2021 dan ko‘chirilgan)"),
+            ("2021-09-01", "Mustaqillik kuni"),
+            ("2021-09-02", "Prezidentining farmoni bilan qo‘shimcha dam olish kuni"),
+            ("2021-09-03", "Prezidentining farmoni bilan qo‘shimcha dam olish kuni"),
+            ("2021-10-01", "O‘qituvchi va murabbiylar kuni"),
+            ("2021-12-08", "O‘zbekiston Respublikasi Konstitutsiyasi kuni"),
+            ("2021-12-31", "Prezidentining farmoni bilan qo‘shimcha dam olish kuni"),
         )
 
     def test2022(self):