Beispiel #1
0
    def __generate_holidays(cls, year):
        
        empty = Calendar()
        
        # New Year's Day
        yield empty.adjust(date(year, 1, 1), BusinessDayConvention.following)
        
        if year >= 2000:
            # Good Friday and Easter Monday
            easter_monday = empty.easter(year);
            yield easter_monday + timedelta(-3)
            yield easter_monday
            
        if year >= 2000:
            # Labour Day
            yield date(year, 5, 1)

        # Christmas
        yield date(year, 12, 25)

        if year >= 2000:
            # Day of Goodwill
            yield date(year, 12, 26)

        if year == 1998 or year == 1999 or year == 2001:
            yield date(year, 12, 31)
    def __generate_holidays(cls, year):
        
        empty = Calendar();
        
        # New Years Days, adjusted to the first non-weekend.
        yield empty.adjust(date(year, JulianMonth.january, 1), BusinessDayConvention.following)

        # Good Friday and Easter Monday
        easter_monday = empty.easter(year)
        yield easter_monday - timedelta(3)
        yield easter_monday

        if year == 2011:
            # Royal Wedding
            yield date(2011, JulianMonth.april, 29)
            
        # May Day - first Monday in May.
        yield empty.add_nth_day_of_week(date(year, JulianMonth.may, 1), 1, DayOfWeek.monday, False)
        
        if year == 2002:
            # Golden Jubilee Bank Holiday
            yield date(2002, JulianMonth.june, 3)
            # Special Spring Bank Holiday
            yield date(2002, JulianMonth.june, 4)
        elif year == 2012:
            # Diamond Jubilee Bank Holiday
            yield date(2012, JulianMonth.june, 4)
            # Special Spring Bank Holiday
            yield date(2012, JulianMonth.june, 5)
        else:
            # Spring Bank Holiday - last Monday in May
            yield empty.add_nth_day_of_week(empty.end_of_month(year, JulianMonth.may), -1, DayOfWeek.monday, False)
        
        # August Bank Holiday - last Monday in August.
        yield empty.add_nth_day_of_week(empty.end_of_month(year, JulianMonth.august), -1, DayOfWeek.monday, False)

        # Christmas Day
        christmas_day = empty.adjust(date(year, JulianMonth.december, 25), BusinessDayConvention.following)
        yield christmas_day

        # Boxing Day
        yield empty.add_business_days(christmas_day, 1)
        
        if year == 1999:
            # Millennium Celebration
            yield date(1999, JulianMonth.december, 31)