예제 #1
0
    def holiday_half_days(self):
        """
        Define half-day holidays.

        Both Christmas Eve (_aðfangadagur jóla_) and New Year's Eve
        (_gamlársdagur_) are public holidays in Iceland from 13:00 only.
        They're included as full-day holidays, but with an explanatory
        note.

        12-24: [NRF] Aðfangadagur jóla
        12-31: [NF] Gamlársdagur
        """
        return [
            Holiday(
                locale=self.locale,
                region="",
                date=SmartDayArrow(self.year, 12, 24),
                description="Aðfangadagur jóla",
                flags="NRF",
                notes="Holiday from 13:00",
            ),
            Holiday(
                locale=self.locale,
                region="",
                date=SmartDayArrow(self.year, 12, 31),
                description="Gamlársdagur",
                flags="NF",
                notes="Holiday from 13:00",
            ),
        ]
예제 #2
0
    def holiday_new_years_day_observed(self):
        date = SmartDayArrow(self.year, 1, 1)

        if date.weekday() in ['saturday', 'sunday']:
            return [Holiday(
                    locale=self.locale,
                    region="",
                    date=date.shift_to_weekday('monday', including=True),
                    description="New Year's Day (observed)",
                    flags="NV",
                    notes="")]

        return []
예제 #3
0
    def holiday_koninkrijksdag(self):
        date = SmartDayArrow(self.year, 12, 15)

        if date.weekday() == 'sunday':
            date = date.shift(days=1)

        return [Holiday(
            locale=self.locale,
            region="",
            date=date,
            description="Koninkrijksdag",
            flags="NV",
            notes="")]
예제 #4
0
    def holiday_anzac_day_observed(self):
        date = SmartDayArrow(self.year, 4, 25)

        if self.year > 2015 and date.weekday() in ['saturday', 'sunday']:
            return [
                Holiday(locale=self.locale,
                        region="",
                        date=date.shift_to_weekday('monday', including=True),
                        description="ANZAC Day (observed)",
                        flags="NV",
                        notes="")
            ]

        return []
예제 #5
0
    def holiday_may_day(self):
        """
        05-01: [NF] Πρωτομαγιά
        Postponed if it collides with Easter
        """
        date = SmartDayArrow(self.year, 5, 1)
        easter_date = easter(self.year, self.easter_type)

        if date == easter_date:
            date = date.shift(days=2)
        elif date == easter_date.shift(days=1):
            date = date.shift(days=1)

        return [Holiday(self.locale, "", date, "Πρωτομαγιά", "NF")]
예제 #6
0
 def holiday_san_jose(self):
     """First Monday after March 19."""
     return [
         Holiday(
             self.locale, "",
             SmartDayArrow(self.year, 3,
                           19).shift_to_weekday('monday', including=True),
             "Día de San José", "NRV")
     ]
예제 #7
0
 def holiday_reyes(self):
     """First Monday after January 6."""
     return [
         Holiday(
             self.locale, "",
             SmartDayArrow(self.year, 1,
                           6).shift_to_weekday('monday', including=True),
             "Día de los Reyes Magos", "NRV")
     ]
예제 #8
0
 def holiday_patriot_s_day(self):
     return [Holiday(
             locale=self.locale,
             region='QC',
             date=SmartDayArrow(self.year, 5, 25).shift_to_weekday(
                         'monday', order=1, reverse=True, including=False),
             description="National Patriots' Day",
             flags="V",
             notes="")]
예제 #9
0
 def holiday_san_pedro_san_pablo(self):
     """First Monday after June 29."""
     return [
         Holiday(
             self.locale, "",
             SmartDayArrow(self.year, 6,
                           29).shift_to_weekday('monday', including=True),
             "San Pedro y San Pablo", "NRV")
     ]
예제 #10
0
 def holiday_asuncion(self):
     """First Monday after August 15."""
     return [
         Holiday(
             self.locale, "",
             SmartDayArrow(self.year, 8,
                           15).shift_to_weekday('monday', including=True),
             "Asunción de la Virgen", "NRV")
     ]
예제 #11
0
 def holiday_independencia_cartagena(self):
     """First Monday after November 11."""
     return [
         Holiday(
             self.locale, "",
             SmartDayArrow(self.year, 11,
                           11).shift_to_weekday('monday', including=True),
             "Independencia de Cartagena", "NV")
     ]
예제 #12
0
 def holiday_journee_nationale_des_patriotes(self):
     return [Holiday(
             locale=self.locale,
             region='QC',
             date=SmartDayArrow(self.year, 5, 25).shift_to_weekday(
                         'monday', order=1, reverse=True, including=False),
             description="Journée Nationale des Patriotes",
             flags="V",
             notes="")]
예제 #13
0
 def holiday_todos_santos(self):
     """First Monday after November 1."""
     return [
         Holiday(
             self.locale, "",
             SmartDayArrow(self.year, 11,
                           1).shift_to_weekday('monday', including=True),
             "Todos los Santos", "NRV")
     ]
예제 #14
0
 def holiday_dia_raza(self):
     """First Monday after October 12."""
     return [
         Holiday(
             self.locale, "",
             SmartDayArrow(self.year, 10,
                           12).shift_to_weekday('monday', including=True),
             "Día de la Raza", "NV")
     ]
예제 #15
0
    def holiday_buss_und_bettag(self):
        """11 days before 4. sunday before 12-25: [NRV] Buß- und Bettag"""

        return [Holiday(
            self.locale,
            "SN",
            SmartDayArrow(self.year, 12, 25).shift_to_weekday('sunday', order=4, reverse=True).shift(days=-11),
            "Buß- und Bettag",
            "NRV"
        )]
예제 #16
0
 def holiday_dan_sjecanja_na_zrtve_domovinskog_rata_i_dan_sjecanja_na_zrtvu_vukovara_i_skabrnje(
         self):
     if self.year >= 2020:
         return [
             Holiday(
                 self.locale, "", SmartDayArrow(self.year, 11, 18),
                 "Dan sjećanja na žrtve Domovinskog rata i Dan sjećanja na žrtvu Vukovara i Škabrnje",
                 "NF")
         ]
     else:
         return []
예제 #17
0
 def holiday_fete_de_la_reine_victoria(self):
     return [Holiday(
             locale=self.locale,
             region=region,
             date=SmartDayArrow(self.year, 5, 25).shift_to_weekday(
                         'monday', order=1, reverse=True, including=False),
             description="Fête de la Reine Victoria",
             flags="V",
             notes=""
             ) for region in
             ['AB', 'BC', 'MB', 'NS', 'ON', 'SK', 'NT', 'NU', 'YT']
         ]
예제 #18
0
    def holiday_royal_jubilees(self):
        """2012-06-05: Queen's Diamond Jubilee"""
        if self.year == 2012:
            return [Holiday(
                locale=self.locale,
                region="",
                date=SmartDayArrow(2012, 6, 5),
                description="Queen's Diamond Jubilee",
                flags="NV",
                notes="")]

        return []
예제 #19
0
    def holiday_after_new_years_day(self):
        date = SmartDayArrow(self.year, 1, 2)

        if date.weekday() in ['sunday', 'monday']:
            return [
                Holiday(locale=self.locale,
                        region="",
                        date=date.shift_to_weekday('tuesday', including=True),
                        description="Day after New Year's Day",
                        flags="NV",
                        notes="")
            ]

        elif date.weekday() == 'saturday':
            return [
                Holiday(locale=self.locale,
                        region="",
                        date=date.shift_to_weekday('monday', including=True),
                        description="Day after New Year's Day",
                        flags="NV",
                        notes="")
            ]

        return [
            Holiday(locale=self.locale,
                    region="",
                    date=date,
                    description="Day after New Year's Day",
                    flags="NV",
                    notes="")
        ]
예제 #20
0
 def holiday_pyhaeinpaeivae(self):
     """
     Saturday between 31 October and 6 November: Pyhäinpäivä (All Saints' Day)
     """
     return [
         Holiday(
             self.locale, "",
             SmartDayArrow(self.year, 10,
                           30).shift_to_weekday('saturday',
                                                order=1,
                                                reverse=False),
             "Pyhäinpäivä", "NRV")
     ]
예제 #21
0
 def holiday_midsommardagen(self):
     """
     Saturday between 20 and 26 June: Midsommardagen
     """
     return [
         Holiday(
             self.locale, "",
             SmartDayArrow(self.year, 6,
                           19).shift_to_weekday('saturday',
                                                order=1,
                                                reverse=False),
             "Midsommardagen", "NRV")
     ]
예제 #22
0
 def holiday_alla_helgons_dag(self):
     """
     Saturday between 31 October and 6 November: Alla helgons dag (All Saints' Day)
     """
     return [
         Holiday(
             self.locale, "",
             SmartDayArrow(self.year, 10,
                           30).shift_to_weekday('saturday',
                                                order=1,
                                                reverse=False),
             "Alla helgons dag", "NRV")
     ]
예제 #23
0
 def holiday_juhannuspaeivae(self):
     """
     Saturday between 20 and 26 June: Juhannuspäivä (Midsummer Day)
     """
     return [
         Holiday(
             self.locale, "",
             SmartDayArrow(self.year, 6,
                           19).shift_to_weekday('saturday',
                                                order=1,
                                                reverse=False),
             "Juhannuspäivä", "NRV")
     ]
예제 #24
0
    def holiday_den_boje_za_svobodu_a_demokracii_a_mezinarodni_den_studentstva(
            self):
        """
        11-17: [NF]
        before 2019-04-01: Den boje za svobodu a demokracii
        before 2019-04-01: Den boje za svobodu a demokracii a Mezinárodní den studentstva
        """
        if self.year < 2019:
            name = "Den boje za svobodu a demokracii"
        else:
            name = "Den boje za svobodu a demokracii a Mezinárodní den studentstva"

        return [
            Holiday(self.locale, "", SmartDayArrow(self.year, 11, 17), name,
                    "NF")
        ]
예제 #25
0
    def holiday_first_day_of_summer(self):
        """
        Calculate sumardagurinn fyrsti (first day of summer).

        The holiday falls on the first Thursday after the 18th of April.
        """
        return [
            Holiday(
                locale=self.locale,
                region="",
                date=SmartDayArrow(self.year, 4,
                                   18).shift_to_weekday("thursday"),
                description="Sumardagurinn fyrsti",
                flags="NV",
                notes="",
            )
        ]
예제 #26
0
    def holiday_tag_der_befreiung(self):
        """
        2020-05-08: [BE] [NF] 75. Jahrestag der Befreiung vom Nationalsozialismus und der Beendigung des Zweiten Weltkrieges in Europa

        Introduced 2019 for Berlin
        http://gesetze.berlin.de/jportal/?quelle=jlink&query=FeiertG+BE+%C2%A7+1&psml=bsbeprod.psml&max=true
        """
        if self.year == 2020:
            return [Holiday(
                self.locale,
                "BE",
                SmartDayArrow(self.year, 5, 8),
                "75. Jahrestag der Befreiung vom Nationalsozialismus und der Beendigung des Zweiten Weltkrieges in Europa",
                "NF"
            )]
        else:
            return []
예제 #27
0
    def holiday_frauentag(self):
        """
        03-08: [BE] [NF] Frauentag

        Introduced 2019 for Berlin
        http://gesetze.berlin.de/jportal/?quelle=jlink&query=FeiertG+BE+%C2%A7+1&psml=bsbeprod.psml&max=true
        """
        if self.year >= 2019:
            return [Holiday(
                self.locale,
                "BE",
                SmartDayArrow(self.year, 3, 8),
                "Internationaler Frauentag",
                "NF"
            )]
        else:
            return []
예제 #28
0
    def holiday_spring_bank_holiday(self):
        """1. last monday in may: [NV] Spring Bank Holiday
        2012: Moved to June 4, because of Queen’s Diamond Jubilee
        """
        if self.year == 2012:
            date = SmartDayArrow(self.year, 6, 4)
        else:
            date = month_reference(self.year,
                                   "may",
                                   first=False) \
                .shift_to_weekday("monday",
                                  order=1,
                                  reverse=True,
                                  including=True)

        return [Holiday(
            locale=self.locale,
            region="",
            date=date,
            description="Spring Bank Holiday",
            flags="NV",
            notes="")]
예제 #29
0
    def holiday_reformationstag(self):
        """
        10-31: [NRF] Reformationstag

        before 2018: [BB, MV, SN, ST, TH]
        since 2018: [BB, BH, HH, MV, NI, SH, SN, ST, TH]
        2017: national holiday because of 500th anniversary
        """
        if self.year == 2017:
            regions = [""]
        elif self.year < 2018:
            regions = ["BB", "MV", "SN", "ST", "TH"]
        else:
            regions = ["BB", "BH", "HH", "MV", "NI", "SH", "SN", "ST", "TH"]

        return [Holiday(
            self.locale,
            region,
            SmartDayArrow(self.year, 10, 31),
            "Reformationstag",
            "NRF"
        ) for region in regions]
예제 #30
0
    def holiday_koningsdag(self):
        """04-27 or saturday before if it falls on sunday: [NF] Koninginnedag/Koningsdag """
        if self.year < 2014:
            date = SmartDayArrow(self.year, 4, 30)
            description = "Koninginnedag"
        else:
            date = SmartDayArrow(self.year, 4, 27)
            description = "Koningsdag"

        if date.weekday() == 'sunday':
            date = date.shift(days=-1)

        return [Holiday(
            locale=self.locale,
            region="",
            date=date,
            description=description,
            flags="NV",
            notes="")]