Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ and detailed information.

## Available Countries

We currently support 220 country codes. The standard way to refer to a country is by using its [ISO
We currently support 221 country codes. The standard way to refer to a country is by using its [ISO
3166-1 alpha-2 code](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes), the same used
for domain names, and for a subdivision its [ISO 3166-2
code](https://en.wikipedia.org/wiki/ISO_3166-2). Some countries have common or foreign names or
Expand Down Expand Up @@ -1162,6 +1162,13 @@ any) in brackets, available languages and additional holiday categories. All cou
<td></td>
</tr>
<tr>
<td>Niue</td>
<td>NU</td>
<td></td>
<td><strong>en_NU</strong>, en_US</td>
<td></td>
</tr>
<tr>
<td>Norfolk Island</td>
<td>NF</td>
<td></td>
Expand Down
1 change: 1 addition & 0 deletions holidays/countries/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@
from holidays.countries.nicaragua import Nicaragua, NI, NIC
from holidays.countries.niger import Niger, NE, NER
from holidays.countries.nigeria import Nigeria, NG, NGA
from holidays.countries.niue import Niue, NU, NIU
from holidays.countries.norfolk_island import NorfolkIsland, NF, NFK
from holidays.countries.north_macedonia import NorthMacedonia, MK, MKD
from holidays.countries.northern_mariana_islands import NorthernMarianaIslands, MP, MNP, HolidaysMP
Expand Down
115 changes: 115 additions & 0 deletions holidays/countries/niue.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# holidays
# --------
# A fast, efficient Python library for generating country, province and state
# specific sets of holidays on the fly. It aims to make determining whether a
# specific date is a holiday as fast and flexible as possible.
#
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
# Website: https://github.com/vacanza/holidays
# License: MIT (see LICENSE file)

from gettext import gettext as tr

from holidays.calendars.gregorian import SEP
from holidays.groups import ChristianHolidays, InternationalHolidays, StaticHolidays
from holidays.observed_holiday_base import (
ObservedHolidayBase,
SAT_SUN_TO_NEXT_MON,
SAT_SUN_TO_NEXT_MON_TUE,
)


class Niue(ObservedHolidayBase, ChristianHolidays, InternationalHolidays, StaticHolidays):
"""Niue holidays.

References:
* <https://en.wikipedia.org/wiki/Public_holidays_in_Niue>
* <https://en.wikipedia.org/wiki/Niue_Constitution_Act>
* [Public Holidays Ordinance 1961](https://web.archive.org/web/20250102100637/http://www.paclii.org/nu/legis/num_act/nipho1961314.pdf)
* <https://web.archive.org/web/20250223114854/https://niuepocketguide.com/public-holidays-in-niue-other-important-dates/>
* [2021/2022 Public Holidays](https://web.archive.org/web/20250509105501/https://www.gov.nu/media/pages/information/1018c58017-1725838374/4nov2021-circular.pdf)
* [2025 Good Friday & Easter Monday and Anzac Day](https://web.archive.org/web/20250719195126/https://www.gov.nu/media/pages/gazette/3e02b3aa84-1746400484/official-psc-circular-easter-anzac-holiday.pdf)
* [2025 King's Birthday](https://web.archive.org/web/20250719195301/https://www.gov.nu/media/pages/public-service-circulars/3b9f44b6a0-1748573974/king-s-birthday-public-holiday-2025-circular.pdf)
* <http://archive.today/2025.07.14-145535/https://www.wipo.int/wipolex/en/text/427817>
"""

country = "NU"
default_language = "en_NU"
# %s observed.
observed_label = tr("%s (observed)")
# Public Holidays Ordinance 1961.
start_year = 1962
supported_languages = ("en_NU", "en_US")

def __init__(self, *args, **kwargs):
ChristianHolidays.__init__(self)
InternationalHolidays.__init__(self)
StaticHolidays.__init__(self, cls=NiueStaticHolidays)
kwargs.setdefault("observed_rule", SAT_SUN_TO_NEXT_MON_TUE)
super().__init__(*args, **kwargs)

def _populate_public_holidays(self):
# New Year's Day.
self._add_observed(self._add_new_years_day(tr("New Year's Day")))

# Takai Commission Holiday.
self._add_observed(self._add_new_years_day_two(tr("Takai Commission Holiday")))

# Good Friday.
self._add_good_friday(tr("Good Friday"))

# Easter Monday.
self._add_easter_monday(tr("Easter Monday"))

# ANZAC Day.
self._add_observed(self._add_anzac_day(tr("ANZAC Day")), rule=SAT_SUN_TO_NEXT_MON)

self._add_holiday_1st_mon_of_jun(
# King's Birthday.
tr("King's Birthday")
if self._year >= 2023
# Queen's Birthday.
else tr("Queen's Birthday")
)

if self._year >= 1974:
# Constitution Day.
self._add_observed(self._add_holiday_oct_19(tr("Constitution Day")))

# Constitution Day Holiday.
self._add_observed(self._add_holiday_oct_20(tr("Constitution Day Holiday")))
else:
# Annexation Day.
self._add_holiday_3rd_mon_of_oct(tr("Annexation Day"))

# Peniamina Gospel Day.
self._add_holiday_4th_mon_of_oct(tr("Peniamina Gospel Day"))

# Christmas Day.
self._add_observed(self._add_christmas_day(tr("Christmas Day")))

# Boxing Day.
self._add_observed(self._add_christmas_day_two(tr("Boxing Day")))


class NU(Niue):
pass


class NIU(Niue):
pass


class NiueStaticHolidays:
"""Niue special holidays.

References:
* [Queen Elizabeth II's Funeral](https://web.archive.org/web/20250617174022/https://tvniue.com/2022/09/premier-will-attend-hm-the-queens-funeral-while-monday-19th-is-declared-one-off-public-holiday/)
"""

special_public_holidays = {
# Queen Elizabeth II's Funeral.
2022: (SEP, 19, tr("Queen Elizabeth II's Funeral")),
}
88 changes: 88 additions & 0 deletions holidays/locale/en_NU/LC_MESSAGES/NU.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# holidays
# --------
# A fast, efficient Python library for generating country, province and state
# specific sets of holidays on the fly. It aims to make determining whether a
# specific date is a holiday as fast and flexible as possible.
#
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
# Website: https://github.com/vacanza/holidays
# License: MIT (see LICENSE file)
#
# Niue holidays.
#
msgid ""
msgstr ""
"Project-Id-Version: Holidays 0.77\n"
"POT-Creation-Date: 2025-07-19 13:54+0000\n"
"PO-Revision-Date: 2025-07-19 13:54+0000\n"
"Last-Translator: Abheelash Mishra <abheelashdev@gmail.com>\n"
"Language-Team: Holidays Localization Team\n"
"Language: en_NU\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Lingva 5.0.6\n"
"X-Source-Language: en_NU\n"

#. %s observed.
#, c-format
msgid "%s (observed)"
msgstr ""

#. New Year's Day.
msgid "New Year's Day"
msgstr ""

#. Takai Commission Holiday.
msgid "Takai Commission Holiday"
msgstr ""

#. Good Friday.
msgid "Good Friday"
msgstr ""

#. Easter Monday.
msgid "Easter Monday"
msgstr ""

#. ANZAC Day.
msgid "ANZAC Day"
msgstr ""

#. King's Birthday.
msgid "King's Birthday"
msgstr ""

#. Queen's Birthday.
msgid "Queen's Birthday"
msgstr ""

#. Constitution Day.
msgid "Constitution Day"
msgstr ""

#. Constitution Day Holiday.
msgid "Constitution Day Holiday"
msgstr ""

#. Annexation Day.
msgid "Annexation Day"
msgstr ""

#. Peniamina Gospel Day.
msgid "Peniamina Gospel Day"
msgstr ""

#. Christmas Day.
msgid "Christmas Day"
msgstr ""

#. Boxing Day.
msgid "Boxing Day"
msgstr ""

#. Queen Elizabeth II's Funeral.
msgid "Queen Elizabeth II's Funeral"
msgstr ""
88 changes: 88 additions & 0 deletions holidays/locale/en_US/LC_MESSAGES/NU.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# holidays
# --------
# A fast, efficient Python library for generating country, province and state
# specific sets of holidays on the fly. It aims to make determining whether a
# specific date is a holiday as fast and flexible as possible.
#
# Authors: Vacanza Team and individual contributors (see CONTRIBUTORS file)
# dr-prodigy <dr.prodigy.github@gmail.com> (c) 2017-2023
# ryanss <ryanssdev@icloud.com> (c) 2014-2017
# Website: https://github.com/vacanza/holidays
# License: MIT (see LICENSE file)
#
# Niue holidays en_US localization.
#
msgid ""
msgstr ""
"Project-Id-Version: Holidays 0.77\n"
"POT-Creation-Date: 2025-07-19 13:54+0000\n"
"PO-Revision-Date: 2025-07-19 13:54+0000\n"
"Last-Translator: Abheelash Mishra <abheelashdev@gmail.com>\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"
"Generated-By: Lingva 5.0.6\n"
"X-Source-Language: en_NU\n"

#. %s observed.
#, c-format
msgid "%s (observed)"
msgstr "%s (observed)"

#. New Year's Day.
msgid "New Year's Day"
msgstr "New Year's Day"

#. Takai Commission Holiday.
msgid "Takai Commission Holiday"
msgstr "Takai Commission Holiday"

#. Good Friday.
msgid "Good Friday"
msgstr "Good Friday"

#. Easter Monday.
msgid "Easter Monday"
msgstr "Easter Monday"

#. ANZAC Day.
msgid "ANZAC Day"
msgstr "ANZAC Day"

#. King's Birthday.
msgid "King's Birthday"
msgstr "King's Birthday"

#. Queen's Birthday.
msgid "Queen's Birthday"
msgstr "Queen's Birthday"

#. Constitution Day.
msgid "Constitution Day"
msgstr "Constitution Day"

#. Constitution Day Holiday.
msgid "Constitution Day Holiday"
msgstr "Constitution Day Holiday"

#. Annexation Day.
msgid "Annexation Day"
msgstr "Annexation Day"

#. Peniamina Gospel Day.
msgid "Peniamina Gospel Day"
msgstr "Peniamina Gospel Day"

#. Christmas Day.
msgid "Christmas Day"
msgstr "Christmas Day"

#. Boxing Day.
msgid "Boxing Day"
msgstr "Boxing Day"

#. Queen Elizabeth II's Funeral.
msgid "Queen Elizabeth II's Funeral"
msgstr "Queen Elizabeth II's Funeral"
1 change: 1 addition & 0 deletions holidays/registry.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,7 @@
"nicaragua": ("Nicaragua", "NI", "NIC"),
"niger": ("Niger", "NE", "NER"),
"nigeria": ("Nigeria", "NG", "NGA"),
"niue": ("Niue", "NU", "NIU"),
"norfolk_island": ("NorfolkIsland", "NF", "NFK"),
"north_macedonia": ("NorthMacedonia", "MK", "MKD"),
"northern_mariana_islands": ("NorthernMarianaIslands", "MP", "MNP", "HolidaysMP"),
Expand Down
Loading
Loading