768 lines
29 KiB
Python
768 lines
29 KiB
Python
# 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 import _CustomIslamicHolidays
|
|
from holidays.calendars.gregorian import MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV
|
|
from holidays.groups import (
|
|
ChristianHolidays,
|
|
IslamicHolidays,
|
|
InternationalHolidays,
|
|
StaticHolidays,
|
|
)
|
|
from holidays.observed_holiday_base import ObservedHolidayBase, SUN_TO_NEXT_MON
|
|
|
|
|
|
class Spain(
|
|
ObservedHolidayBase, ChristianHolidays, InternationalHolidays, IslamicHolidays, StaticHolidays
|
|
):
|
|
"""Spain holidays.
|
|
|
|
References:
|
|
* <https://web.archive.org/web/20250407130530/https://administracion.gob.es/pag_Home/atencionCiudadana/calendarios.html>
|
|
* [2010](https://web.archive.org/web/20250427181827/https://www.boe.es/buscar/doc.php?id=BOE-A-2009-18477)
|
|
* [2011](https://web.archive.org/web/20231121065830/https://www.boe.es/buscar/doc.php?id=BOE-A-2010-15722)
|
|
* [2012](https://web.archive.org/web/20250427181838/https://www.boe.es/buscar/doc.php?id=BOE-A-2011-16116)
|
|
* [2013](https://web.archive.org/web/20220120080053/https://www.boe.es/buscar/doc.php?id=BOE-A-2012-13644)
|
|
* [2014](https://web.archive.org/web/20201001232243/https://www.boe.es/buscar/doc.php?id=BOE-A-2013-12147)
|
|
* [2015](https://web.archive.org/web/20240915041804/https://www.boe.es/buscar/doc.php?id=BOE-A-2014-10823)
|
|
* [2016](https://web.archive.org/web/20240915044403/http://www.boe.es/buscar/doc.php?id=BOE-A-2015-11348)
|
|
* [2017](https://web.archive.org/web/20170609094105/http://www.boe.es:80/buscar/doc.php?id=BOE-A-2016-9244)
|
|
* [2018](https://web.archive.org/web/20241006073402/https://www.boe.es/buscar/doc.php?id=BOE-A-2017-11639)
|
|
* [2019](https://web.archive.org/web/20240329020330/https://boe.es/buscar/doc.php?id=BOE-A-2018-14369)
|
|
* [2020](https://web.archive.org/web/20240417060155/https://www.boe.es/buscar/doc.php?id=BOE-A-2019-14552)
|
|
* [2021](https://web.archive.org/web/20241114022913/https://www.boe.es/buscar/doc.php?id=BOE-A-2020-13343)
|
|
* [2022](https://web.archive.org/web/20240725121311/https://www.boe.es/buscar/doc.php?id=BOE-A-2021-17113)
|
|
* [2023](https://web.archive.org/web/20240811035605/https://www.boe.es/buscar/doc.php?id=BOE-A-2022-16755)
|
|
* [2024](https://web.archive.org/web/20240401192304/https://www.boe.es/buscar/doc.php?id=BOE-A-2023-22014)
|
|
* [2025](https://web.archive.org/web/20241226214918/https://www.boe.es/buscar/doc.php?id=BOE-A-2024-21316)
|
|
|
|
Holidays checked with official sources for 2010-2025 only.
|
|
"""
|
|
|
|
country = "ES"
|
|
default_language = "es"
|
|
# Monday following %s.
|
|
observed_label = tr("Lunes siguiente a %s")
|
|
subdivisions = (
|
|
"AN", # Andalucía.
|
|
"AR", # Aragón.
|
|
"AS", # Asturias.
|
|
"CB", # Cantabria.
|
|
"CE", # Ceuta.
|
|
"CL", # Castilla y León.
|
|
"CM", # Castilla-La Mancha.
|
|
"CN", # Canarias.
|
|
"CT", # Cataluña (Catalunya).
|
|
"EX", # Extremadura.
|
|
"GA", # Galicia.
|
|
"IB", # Islas Baleares (Illes Balears).
|
|
"MC", # Murcia.
|
|
"MD", # Madrid.
|
|
"ML", # Melilla.
|
|
"NC", # Navarra.
|
|
"PV", # País Vasco.
|
|
"RI", # La Rioja.
|
|
"VC", # Valenciana.
|
|
)
|
|
subdivisions_aliases = {
|
|
"Andalucía": "AN",
|
|
"Aragón": "AR",
|
|
"Asturias": "AS",
|
|
"Cantabria": "CB",
|
|
"Ceuta": "CE",
|
|
"Castilla y León": "CL",
|
|
"Castilla-La Mancha": "CM",
|
|
"Canarias": "CN",
|
|
"Cataluña": "CT",
|
|
"Catalunya": "CT",
|
|
"Extremadura": "EX",
|
|
"Galicia": "GA",
|
|
"Islas Baleares": "IB",
|
|
"Illes Balears": "IB",
|
|
"Murcia": "MC",
|
|
"Madrid": "MD",
|
|
"Melilla": "ML",
|
|
"Navarra": "NC",
|
|
"País Vasco": "PV",
|
|
"La Rioja": "RI",
|
|
"Valenciana": "VC",
|
|
}
|
|
supported_languages = ("en_US", "es", "uk")
|
|
|
|
def __init__(self, *args, islamic_show_estimated: bool = True, **kwargs):
|
|
"""
|
|
Args:
|
|
islamic_show_estimated:
|
|
Whether to add "estimated" label to Islamic holidays name
|
|
if holiday date is estimated.
|
|
"""
|
|
ChristianHolidays.__init__(self)
|
|
InternationalHolidays.__init__(self)
|
|
IslamicHolidays.__init__(
|
|
self, cls=SpainIslamicHolidays, show_estimated=islamic_show_estimated
|
|
)
|
|
StaticHolidays.__init__(self, cls=SpainStaticHolidays)
|
|
kwargs.setdefault("observed_rule", SUN_TO_NEXT_MON)
|
|
super().__init__(*args, **kwargs)
|
|
|
|
def _populate_public_holidays(self):
|
|
if self._year not in {2012, 2017, 2023}:
|
|
# New Year's Day.
|
|
self._add_new_years_day(tr("Año Nuevo"))
|
|
|
|
if self._year not in {2013, 2019}:
|
|
# Epiphany.
|
|
self._add_epiphany_day(tr("Epifanía del Señor"))
|
|
|
|
# Good Friday.
|
|
self._add_good_friday(tr("Viernes Santo"))
|
|
|
|
if self._year not in {2011, 2016, 2022}:
|
|
# Labor Day.
|
|
self._add_labor_day(tr("Fiesta del Trabajo"))
|
|
|
|
if self._year not in {2010, 2021}:
|
|
# Assumption Day.
|
|
self._add_assumption_of_mary_day(tr("Asunción de la Virgen"))
|
|
|
|
if self._year not in {2014, 2025}:
|
|
# National Day.
|
|
self._add_holiday_oct_12(tr("Fiesta Nacional de España"))
|
|
|
|
if self._year not in {2015, 2020}:
|
|
# All Saints' Day.
|
|
self._add_all_saints_day(tr("Todos los Santos"))
|
|
|
|
# Constitution Day.
|
|
self._add_holiday_dec_6(tr("Día de la Constitución Española"))
|
|
|
|
if self._year not in {2013, 2019, 2024}:
|
|
# Immaculate Conception.
|
|
self._add_immaculate_conception_day(tr("Inmaculada Concepción"))
|
|
|
|
if self._year not in {2011, 2016, 2022}:
|
|
# Christmas Day.
|
|
self._add_christmas_day(tr("Natividad del Señor"))
|
|
|
|
def _populate_subdiv_an_public_holidays(self):
|
|
if self._year in {2012, 2017, 2023}:
|
|
self._move_holiday(self._add_new_years_day(tr("Año Nuevo")))
|
|
|
|
if self._year in {2013, 2019}:
|
|
self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
|
|
|
|
# Andalusia Day.
|
|
self._move_holiday(self._add_holiday_feb_28(tr("Día de Andalucia")))
|
|
|
|
# Maundy Thursday.
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year in {2011, 2016, 2022}:
|
|
self._move_holiday(self._add_labor_day(tr("Fiesta del Trabajo")))
|
|
|
|
if self._year in {2010, 2021}:
|
|
self._move_holiday(self._add_assumption_of_mary_day(tr("Asunción de la Virgen")))
|
|
|
|
if self._year in {2014, 2025}:
|
|
self._move_holiday(self._add_holiday_oct_12(tr("Fiesta Nacional de España")))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_all_saints_day(tr("Todos los Santos")))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year in {2013, 2019, 2024}:
|
|
self._move_holiday(self._add_immaculate_conception_day(tr("Inmaculada Concepción")))
|
|
|
|
if self._year in {2011, 2016, 2022}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
def _populate_subdiv_ar_public_holidays(self):
|
|
if self._year in {2012, 2017, 2023}:
|
|
self._move_holiday(self._add_new_years_day(tr("Año Nuevo")))
|
|
|
|
if self._year in {2013, 2019}:
|
|
self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
# Saint George's Day.
|
|
self._move_holiday(self._add_saint_georges_day(tr("Día de San Jorge")))
|
|
|
|
if self._year in {2011, 2016, 2022}:
|
|
self._move_holiday(self._add_labor_day(tr("Fiesta del Trabajo")))
|
|
|
|
if self._year in {2010, 2021}:
|
|
self._move_holiday(self._add_assumption_of_mary_day(tr("Asunción de la Virgen")))
|
|
|
|
if self._year in {2014, 2025}:
|
|
self._move_holiday(self._add_holiday_oct_12(tr("Fiesta Nacional de España")))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_all_saints_day(tr("Todos los Santos")))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year in {2013, 2019, 2024}:
|
|
self._move_holiday(self._add_immaculate_conception_day(tr("Inmaculada Concepción")))
|
|
|
|
if self._year in {2011, 2016, 2022}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
def _populate_subdiv_as_public_holidays(self):
|
|
if self._year in {2012, 2017, 2023}:
|
|
self._move_holiday(self._add_new_years_day(tr("Año Nuevo")))
|
|
|
|
if self._year in {2013, 2019}:
|
|
self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year in {2011, 2016, 2022}:
|
|
self._move_holiday(self._add_labor_day(tr("Fiesta del Trabajo")))
|
|
|
|
if self._year in {2010, 2021}:
|
|
self._move_holiday(self._add_assumption_of_mary_day(tr("Asunción de la Virgen")))
|
|
|
|
# Asturia Day.
|
|
self._move_holiday(self._add_holiday_sep_8(tr("Día de Asturias")))
|
|
|
|
if self._year in {2014, 2025}:
|
|
self._move_holiday(self._add_holiday_oct_12(tr("Fiesta Nacional de España")))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_all_saints_day(tr("Todos los Santos")))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year in {2013, 2019, 2024}:
|
|
self._move_holiday(self._add_immaculate_conception_day(tr("Inmaculada Concepción")))
|
|
|
|
if self._year in {2011, 2016, 2022}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
def _populate_subdiv_cb_public_holidays(self):
|
|
if self._year == 2013:
|
|
self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
|
|
|
|
if self._year != 2018:
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year in {2013, 2015, 2019, 2020, 2024}:
|
|
# Easter Monday.
|
|
self._add_easter_monday(tr("Lunes de Pascua"))
|
|
|
|
if self._year == 2011:
|
|
self._move_holiday(self._add_labor_day(tr("Fiesta del Trabajo")))
|
|
|
|
if self._year in {2012, 2013, 2014, 2019, 2024}:
|
|
# Saint James' Day.
|
|
self._add_saint_james_day(tr("Santiago Apóstol"))
|
|
|
|
if self._year not in {2012, 2015, 2019, 2024}:
|
|
# Cantabria Institutions Day.
|
|
self._add_holiday_jul_28(tr("Día de las Instituciones de Cantabria"))
|
|
|
|
if self._year not in {2013, 2019, 2024}:
|
|
# Our Lady of the Bien Aparecida.
|
|
self._add_holiday_sep_15(tr("La Bien Aparecida"))
|
|
|
|
if self._year == 2015:
|
|
self._move_holiday(self._add_all_saints_day(tr("Todos los Santos")))
|
|
|
|
if self._year == 2019:
|
|
self._move_holiday(self._add_immaculate_conception_day(tr("Inmaculada Concepción")))
|
|
|
|
if self._year in {2016, 2022}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
def _populate_subdiv_ce_public_holidays(self):
|
|
if self._year == 2012:
|
|
self._move_holiday(self._add_new_years_day(tr("Año Nuevo")))
|
|
|
|
if self._year in {2013, 2019}:
|
|
self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year == 2011:
|
|
self._move_holiday(self._add_labor_day(tr("Fiesta del Trabajo")))
|
|
|
|
if self._year >= 2022:
|
|
# Santa Maria of Africa.
|
|
self._add_holiday_aug_5(tr("Nuestra Señora de África"))
|
|
|
|
if self._year not in {2011, 2012, 2015, 2018, 2025}:
|
|
# Ceuta Day.
|
|
self._add_holiday_sep_2(tr("Día de Ceuta"))
|
|
|
|
if self._year == 2014:
|
|
self._move_holiday(self._add_holiday_oct_12(tr("Fiesta Nacional de España")))
|
|
|
|
if self._year == 2015:
|
|
self._move_holiday(self._add_all_saints_day(tr("Todos los Santos")))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year == 2013:
|
|
self._move_holiday(self._add_immaculate_conception_day(tr("Inmaculada Concepción")))
|
|
|
|
if self._year in {2011, 2016}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
# Eid al-Adha.
|
|
name = tr("Fiesta del Sacrificio-Eidul Adha")
|
|
if self._year == 2011:
|
|
self._add_eid_al_adha_day_two(name)
|
|
elif self._year in {2012, 2014}:
|
|
self._add_eid_al_adha_day_three(name)
|
|
elif self._year >= 2010:
|
|
self._add_eid_al_adha_day(name)
|
|
|
|
def _populate_subdiv_cl_public_holidays(self):
|
|
if self._year in {2017, 2023}:
|
|
self._move_holiday(self._add_new_years_day(tr("Año Nuevo")))
|
|
|
|
if self._year in {2013, 2019}:
|
|
self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
|
|
|
|
if self._year in {2010, 2012}:
|
|
self._add_saint_josephs_day(tr("San José"))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year != 2023:
|
|
# Castile and León Day.
|
|
self._move_holiday(self._add_holiday_apr_23(tr("Fiesta de Castilla y León")))
|
|
|
|
if self._year in {2016, 2022}:
|
|
self._move_holiday(self._add_labor_day(tr("Fiesta del Trabajo")))
|
|
|
|
if self._year in {2011, 2023}:
|
|
self._add_saint_james_day(tr("Santiago Apóstol"))
|
|
|
|
if self._year == 2021:
|
|
self._move_holiday(self._add_assumption_of_mary_day(tr("Asunción de la Virgen")))
|
|
|
|
if self._year in {2014, 2025}:
|
|
self._move_holiday(self._add_holiday_oct_12(tr("Fiesta Nacional de España")))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_all_saints_day(tr("Todos los Santos")))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year in {2013, 2019, 2024}:
|
|
self._move_holiday(self._add_immaculate_conception_day(tr("Inmaculada Concepción")))
|
|
|
|
if self._year in {2011, 2016, 2022}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
def _populate_subdiv_cm_public_holidays(self):
|
|
if self._year == 2013:
|
|
self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
|
|
|
|
if self._year in {2010, 2011, 2020}:
|
|
# Saint Joseph's Day.
|
|
self._add_saint_josephs_day(tr("San José"))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year in {2014, 2015, 2019, 2020}:
|
|
self._add_easter_monday(tr("Lunes de Pascua"))
|
|
|
|
if self._year not in {2010, 2018}:
|
|
# Corpus Christi.
|
|
self._add_corpus_christi_day(tr("Corpus Christi"))
|
|
|
|
if self._year not in {2015, 2020}:
|
|
# Castilla-La Mancha Day.
|
|
self._add_holiday_may_31(tr("Día de Castilla-La Mancha"))
|
|
|
|
if self._year == 2015:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year in {2016, 2022}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
def _populate_subdiv_cn_public_holidays(self):
|
|
if self._year in {2013, 2019}:
|
|
self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year == 2016:
|
|
self._move_holiday(self._add_labor_day(tr("Fiesta del Trabajo")))
|
|
|
|
if self._year != 2021:
|
|
# Day of the Canary Islands.
|
|
self._move_holiday(self._add_holiday_may_30(tr("Día de Canarias")))
|
|
|
|
if self._year == 2021:
|
|
self._move_holiday(self._add_assumption_of_mary_day(tr("Asunción de la Virgen")))
|
|
|
|
if self._year == 2015:
|
|
self._move_holiday(self._add_all_saints_day(tr("Todos los Santos")))
|
|
|
|
if self._year == 2020:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year in {2011, 2022}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
def _populate_subdiv_ct_public_holidays(self):
|
|
self._add_easter_monday(tr("Lunes de Pascua"))
|
|
|
|
if self._year in {2011, 2016, 2022}:
|
|
# Whit Monday.
|
|
self._add_whit_monday(tr("Día de la Pascua Granada"))
|
|
|
|
if self._year not in {2012, 2018}:
|
|
# Saint John the Baptist.
|
|
self._add_saint_johns_day(tr("San Juan"))
|
|
|
|
if self._year not in {2011, 2022}:
|
|
# National Day of Catalonia.
|
|
self._add_holiday_sep_11(tr("Fiesta Nacional de Cataluña"))
|
|
|
|
if self._year not in {2010, 2021}:
|
|
# Saint Stephen's Day.
|
|
self._add_christmas_day_two(tr("San Esteban"))
|
|
|
|
def _populate_subdiv_ex_public_holidays(self):
|
|
if self._year == 2012:
|
|
self._move_holiday(self._add_new_years_day(tr("Año Nuevo")))
|
|
|
|
if self._year in {2013, 2019}:
|
|
self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
|
|
|
|
if self._year in {2023, 2024}:
|
|
# Shrove Tuesday.
|
|
self._add_carnival_tuesday(tr("Martes de Carnaval"))
|
|
|
|
if self._year in {2010, 2017, 2021}:
|
|
# Saint Joseph's Day.
|
|
self._move_holiday(self._add_saint_josephs_day(tr("San José")))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year in {2011, 2016, 2022}:
|
|
self._move_holiday(self._add_labor_day(tr("Fiesta del Trabajo")))
|
|
|
|
if self._year != 2024:
|
|
# Extremadura Day.
|
|
self._move_holiday(self._add_holiday_sep_8(tr("Día de Extremadura")))
|
|
|
|
if self._year in {2014, 2025}:
|
|
self._move_holiday(self._add_holiday_oct_12(tr("Fiesta Nacional de España")))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_all_saints_day(tr("Todos los Santos")))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year in {2013, 2019, 2024}:
|
|
self._move_holiday(self._add_immaculate_conception_day(tr("Inmaculada Concepción")))
|
|
|
|
if self._year in {2011, 2016, 2022}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
def _populate_subdiv_ga_public_holidays(self):
|
|
if self._year in {2010, 2011} or 2019 <= self._year <= 2021:
|
|
self._move_holiday(self._add_saint_josephs_day(tr("San José")))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year not in {2015, 2020}:
|
|
# Galician Literature Day.
|
|
self._add_holiday_may_17(tr("Día de las Letras Gallegas"))
|
|
|
|
if self._year in {2013, 2016, 2020, 2022}:
|
|
self._add_saint_johns_day(tr("San Juan"))
|
|
|
|
if self._year != 2021:
|
|
# Galician National Day.
|
|
self._add_holiday_jul_25(tr("Día Nacional de Galicia"))
|
|
|
|
if self._year == 2015:
|
|
self._move_holiday(self._add_all_saints_day(tr("Todos los Santos")))
|
|
|
|
def _populate_subdiv_ib_public_holidays(self):
|
|
if self._year not in {2015, 2020}:
|
|
# Day of the Balearic Islands.
|
|
self._add_holiday_mar_1(tr("Día de las Islas Baleares"))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year not in {2014, 2025}:
|
|
self._add_easter_monday(tr("Lunes de Pascua"))
|
|
|
|
if self._year == 2015:
|
|
self._move_holiday(self._add_all_saints_day(tr("Todos los Santos")))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year in {2011, 2016, 2022}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
if self._year in {2013, 2014, 2019, 2020, 2025}:
|
|
self._add_christmas_day_two(tr("San Esteban"))
|
|
|
|
def _populate_subdiv_mc_public_holidays(self):
|
|
if self._year in {2017, 2023}:
|
|
self._move_holiday(self._add_new_years_day(tr("Año Nuevo")))
|
|
|
|
if self._year in {2013, 2019}:
|
|
self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
|
|
|
|
if (self._year <= 2021 and self._year != 2017) or self._year in {2024, 2025}:
|
|
self._move_holiday(self._add_saint_josephs_day(tr("San José")))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year in {2011, 2022}:
|
|
self._move_holiday(self._add_labor_day(tr("Fiesta del Trabajo")))
|
|
|
|
if self._year not in {2013, 2024}:
|
|
# Murcia Day.
|
|
self._move_holiday(self._add_holiday_jun_9(tr("Día de la Región de Murcia")))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year in {2013, 2024}:
|
|
self._move_holiday(self._add_immaculate_conception_day(tr("Inmaculada Concepción")))
|
|
|
|
if self._year in {2016, 2022}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
def _populate_subdiv_md_public_holidays(self):
|
|
if self._year in {2013, 2019}:
|
|
self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
|
|
|
|
if self._year in {2010, 2012, 2015, 2017, 2021, 2023}:
|
|
self._move_holiday(self._add_saint_josephs_day(tr("San José")))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year != 2010:
|
|
# Madrid Day.
|
|
self._move_holiday(self._add_holiday_may_2(tr("Fiesta de la Comunidad de Madrid")))
|
|
|
|
if self._year in {2010, 2011, 2014}:
|
|
self._add_corpus_christi_day(tr("Corpus Christi"))
|
|
|
|
if self._year in {2011, 2016, 2022, 2024, 2025}:
|
|
self._add_saint_james_day(tr("Santiago Apóstol"))
|
|
|
|
if self._year == 2020:
|
|
self._move_holiday(self._add_all_saints_day(tr("Todos los Santos")))
|
|
|
|
if self._year == 2020:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year == 2019:
|
|
self._move_holiday(self._add_immaculate_conception_day(tr("Inmaculada Concepción")))
|
|
|
|
if self._year in {2016, 2022}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
def _populate_subdiv_ml_public_holidays(self):
|
|
if self._year == 2017:
|
|
self._move_holiday(self._add_new_years_day(tr("Año Nuevo")))
|
|
|
|
if self._year in {2013, 2019}:
|
|
self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
|
|
|
|
if self._year in {2020, 2021}:
|
|
# Statute of Autonomy of Melilla Day.
|
|
self._add_holiday_mar_13(tr("Estatuto de Autonomía de la Ciudad de Melilla"))
|
|
|
|
if self._year <= 2016:
|
|
self._add_saint_josephs_day(tr("San José"))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year in {2019, 2024}:
|
|
self._move_holiday(self._add_immaculate_conception_day(tr("Inmaculada Concepción")))
|
|
|
|
if self._year in {2011, 2016, 2022}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
if self._year in {2022, 2023, 2025}:
|
|
# Eid al-Fitr.
|
|
self._add_eid_al_fitr_day(tr("Fiesta del Eid Fitr"))
|
|
|
|
# Eid al-Adha.
|
|
name = tr("Fiesta del Sacrificio-Aid Al Adha")
|
|
if self._year in {2011, 2012, 2021}:
|
|
self._add_eid_al_adha_day_two(name)
|
|
elif self._year == 2022:
|
|
self._add_eid_al_adha_day_three(name)
|
|
elif self._year >= 2010:
|
|
self._add_eid_al_adha_day(name)
|
|
|
|
def _populate_subdiv_nc_public_holidays(self):
|
|
if self._year in {2013, 2019}:
|
|
self._move_holiday(self._add_epiphany_day(tr("Epifanía del Señor")))
|
|
|
|
if self._year in {2010, 2012, 2014, 2015, 2019, 2020, 2021}:
|
|
self._add_saint_josephs_day(tr("San José"))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
self._add_easter_monday(tr("Lunes de Pascua"))
|
|
|
|
if self._year in {2011, 2013, 2015, 2016, 2017} or self._year >= 2022:
|
|
self._add_saint_james_day(tr("Santiago Apóstol"))
|
|
|
|
if self._year == 2020:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year in {2011, 2016, 2022}:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
def _populate_subdiv_pv_public_holidays(self):
|
|
if self._year in {2010, 2015, 2019, 2020, 2021}:
|
|
self._add_saint_josephs_day(tr("San José"))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
self._add_easter_monday(tr("Lunes de Pascua"))
|
|
|
|
if self._year not in {2010, 2012, 2014, 2018, 2021}:
|
|
self._add_saint_james_day(tr("Santiago Apóstol"))
|
|
|
|
if 2011 <= self._year <= 2014:
|
|
# País Vasco Day.
|
|
self._add_holiday_oct_25(tr("Día del País Vasco"))
|
|
|
|
def _populate_subdiv_ri_public_holidays(self):
|
|
if self._year in {2010, 2012}:
|
|
self._add_saint_josephs_day(tr("San José"))
|
|
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
if self._year not in {2010, 2012, 2018}:
|
|
self._add_easter_monday(tr("Lunes de Pascua"))
|
|
|
|
# La Rioja Day.
|
|
self._move_holiday(self._add_holiday_jun_9(tr("Día de La Rioja")))
|
|
|
|
if self._year in {2011, 2016}:
|
|
self._add_saint_james_day(tr("Santiago Apóstol"))
|
|
|
|
if self._year in {2015, 2020}:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year in {2013, 2019}:
|
|
self._move_holiday(self._add_immaculate_conception_day(tr("Inmaculada Concepción")))
|
|
|
|
if self._year == 2022:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
def _populate_subdiv_vc_public_holidays(self):
|
|
if (self._year <= 2022 and self._year != 2017) or self._year in {2024, 2025}:
|
|
self._add_saint_josephs_day(tr("San José"))
|
|
|
|
if self._year in {2011, 2016, 2017, 2022}:
|
|
self._add_holy_thursday(tr("Jueves Santo"))
|
|
|
|
self._add_easter_monday(tr("Lunes de Pascua"))
|
|
|
|
if self._year == 2011:
|
|
self._move_holiday(self._add_labor_day(tr("Fiesta del Trabajo")))
|
|
|
|
if self._year >= 2019:
|
|
self._add_saint_johns_day(tr("San Juan"))
|
|
|
|
if self._year not in {2011, 2016, 2022}:
|
|
# Valencian Community Day.
|
|
self._add_holiday_oct_9(tr("Día de la Comunidad Valenciana"))
|
|
|
|
if self._year == 2015:
|
|
self._move_holiday(self._add_holiday_dec_6(tr("Día de la Constitución Española")))
|
|
|
|
if self._year == 2016:
|
|
self._move_holiday(self._add_christmas_day(tr("Natividad del Señor")))
|
|
|
|
|
|
class ES(Spain):
|
|
pass
|
|
|
|
|
|
class ESP(Spain):
|
|
pass
|
|
|
|
|
|
class SpainIslamicHolidays(_CustomIslamicHolidays):
|
|
EID_AL_ADHA_DATES = {
|
|
2010: (NOV, 17),
|
|
2011: (NOV, 6),
|
|
2012: (OCT, 25),
|
|
2013: (OCT, 15),
|
|
2014: (OCT, 4),
|
|
2015: (SEP, 25),
|
|
2016: (SEP, 12),
|
|
2017: (SEP, 1),
|
|
2018: (AUG, 22),
|
|
2019: (AUG, 12),
|
|
2020: (JUL, 31),
|
|
2021: (JUL, 20),
|
|
2022: (JUL, 9),
|
|
2023: (JUN, 29),
|
|
2024: (JUN, 17),
|
|
2025: (JUN, 6),
|
|
}
|
|
|
|
EID_AL_FITR_DATES = {
|
|
2022: (MAY, 3),
|
|
2023: (APR, 21),
|
|
2025: (MAR, 31),
|
|
}
|
|
|
|
|
|
class SpainStaticHolidays:
|
|
special_ga_public_holidays = {
|
|
# Day following Saint Joseph's Day.
|
|
2015: (MAR, 20, tr("Día siguiente a San José")),
|
|
}
|
|
|
|
special_md_public_holidays = {
|
|
# Saint Joseph's Day Transfer.
|
|
2013: (MAR, 18, tr("Traslado de San José")),
|
|
}
|
|
|
|
special_pv_public_holidays = {
|
|
# 80th Anniversary of the first Basque Government.
|
|
2016: (OCT, 7, tr("80 Aniversario del primer Gobierno Vasco")),
|
|
# V Centennial of the Circumnavigation of the World.
|
|
2022: (SEP, 6, tr("V Centenario Vuelta al Mundo")),
|
|
}
|
|
|
|
special_vc_public_holidays = {
|
|
# The Fallas.
|
|
2013: (MAR, 18, tr("Lunes de Fallas")),
|
|
}
|