def daysSinceRH(date):
    """Returns the number of days since Rosh Hashona"""
    year = date.year
    rh = ()
    rh = holidays.rosh_hashanah(year)
    rhdate = datetime(rh[0], rh[1], rh[2])
    diff = date - rhdate
    if (diff.days) < 0:
        rh = holidays.rosh_hashanah(year - 1)
        rhdate = datetime(rh[0], rh[1], rh[2])
        diff = date - rhdate
    return diff
Esempio n. 2
0
    def test_jewish_holidays(self):
        # http://www.chabad.org/holidays/passover/pesach_cdo/aid/671901/jewish/When-is-Passover-in-2013-2014-2015-2016-and-2017.htm
        # the date here is the start of the holiday, so the eve=1 option is used
        passovers = [(2013, 3, 25), (2014, 4, 14), (2015, 4, 3), (2016, 4, 22),
                     (2017, 4, 10)]
        for y, m, d in passovers:
            self.assertEqual(holidays.passover(y, eve=1), (y, m, d))

        rosh_hashanahs = [
            (2014, 9, 24),
            (2015, 9, 13),
            (2016, 10, 2),
            (2017, 9, 20),
        ]
        for y, m, d in rosh_hashanahs:
            self.assertEqual(holidays.rosh_hashanah(y, eve=1), (y, m, d))

        self.assertEqual(holidays.hanukkah(2015, True), (2015, 12, 6))
        self.assertEqual(holidays.hanukkah(2015), (2015, 12, 7))

        self.assertEqual(holidays.yom_kippur(2015), (2015, 9, 23))
        self.assertEqual(holidays.yom_kippur(2015, True), (2015, 9, 22))

        sukkots = [
            (2016, 10, 17),
            (2015, 9, 28),
        ]
        for y, m, d in sukkots:
            self.assertEqual(holidays.sukkot(y, eve=0), (y, m, d))

        shavuots = [(2016, 6, 12), (2015, 5, 24)]
        for y, m, d in shavuots:
            self.assertEqual(holidays.shavuot(y, eve=0), (y, m, d))

        purims = [(2017, 3, 12), (2016, 3, 24)]
        for y, m, d in purims:
            self.assertEqual(holidays.purim(y, eve=0), (y, m, d))

        tisha_bavs = [
            (2019, 8, 11),
            (2020, 7, 30),
            (2021, 7, 18),
            (2022, 8, 7),
            (2023, 7, 27),
        ]
        for y, m, d in tisha_bavs:
            self.assertEqual(holidays.tisha_bav(y, eve=0), (y, m, d))

        assert self.h.hanukkah == (2015, 12, 7)
        assert self.h.rosh_hashanah == (2015, 9, 14)
        assert self.h.yom_kippur == (2015, 9, 23)
        assert self.h.passover == (2015, 4, 4)

        assert self.h.tisha_bav == (2015, 7, 26)
        assert self.h.shemini_azeret == (2015, 10, 5)
        assert self.h.lag_baomer == (2015, 5, 7)
        assert self.h.tu_beshvat == (2015, 2, 4)
Esempio n. 3
0
    def test_jewish_holidays(self):
        # http://www.chabad.org/holidays/passover/pesach_cdo/aid/671901/jewish/When-is-Passover-in-2013-2014-2015-2016-and-2017.htm
        # the date here is the start of the holiday, so the eve=1 option is used
        passovers = [
            (2013, 3, 25),
            (2014, 4, 14),
            (2015, 4, 3),
            (2016, 4, 22),
            (2017, 4, 10)
        ]
        for y, m, d in passovers:
            self.assertEqual(holidays.passover(y, eve=1), (y, m, d))

        rosh_hashanahs = [
            (2014, 9, 24),
            (2015, 9, 13),
            (2016, 10, 2),
            (2017, 9, 20),
        ]
        for y, m, d in rosh_hashanahs:
            self.assertEqual(holidays.rosh_hashanah(y, eve=1), (y, m, d))

        self.assertEqual(holidays.hanukkah(2015, True), (2015, 12, 6))
        self.assertEqual(holidays.hanukkah(2015), (2015, 12, 7))

        self.assertEqual(holidays.yom_kippur(2015), (2015, 9, 23))
        self.assertEqual(holidays.yom_kippur(2015, True), (2015, 9, 22))

        sukkots = [
            (2016, 10, 17),
            (2015, 9, 28),
        ]
        for y, m, d in sukkots:
            self.assertEqual(holidays.sukkot(y, eve=0), (y, m, d))

        shavuots = [
            (2016, 6, 12),
            (2015, 5, 24)
        ]
        for y, m, d in shavuots:
            self.assertEqual(holidays.shavuot(y, eve=0), (y, m, d))

        purims = [
            (2017, 3, 12),
            (2016, 3, 24)
        ]
        for y, m, d in purims:
            self.assertEqual(holidays.purim(y, eve=0), (y, m, d))

        assert self.h.hanukkah == (2015, 12, 7)
        assert self.h.rosh_hashanah == (2015, 9, 14)
        assert self.h.yom_kippur == (2015, 9, 23)
        assert self.h.passover == (2015, 4, 4)
def roshHash(dateoryear):
    """Returns the date of Rosh Hashonah as a datetime object
    Takes either a date or just a year"""
    if type(dateoryear) is datetime:
        year = dateoryear.year
    elif type(dateoryear) is int:
        year = dateoryear
    else:
        year = int(dateoryear)
    rh = holidays.rosh_hashanah(year)
    rhdate = datetime(rh[0], rh[1], rh[2])
    return rhdate
Esempio n. 5
0
    def _populate(self, year):
        # Passover
        name = "Passover I"
        year, month, day = passover(year, eve=True)
        passover_start_dt = date(year, month, day)
        self[passover_start_dt] = name + " - Eve"
        self[passover_start_dt + rd(days=1)] = name

        name = "Passover"
        for offset in range(2, 6):
            self[passover_start_dt + rd(days=offset)] = name + " - Chol HaMoed"

        name = "Passover VII"
        self[passover_start_dt + rd(days=6)] = name + " - Eve"
        self[passover_start_dt + rd(days=7)] = name

        # Memorial Day
        name = "Memorial Day"
        year, month, day = gregorian.from_jd(
            hebrew.to_jd_gregorianyear(year, hebrew.IYYAR, 3))
        self[date(year, month, day) + rd(days=1)] = name

        observed_delta = 0
        if self.observed:
            day_in_week = date(year, month, day).weekday()
            if day_in_week in (2, 3):
                observed_delta = -(day_in_week - 1)
            elif 2004 <= year and day_in_week == 5:
                observed_delta = 1

            if observed_delta != 0:
                self[date(year, month, day) +
                     rd(days=observed_delta + 1)] = (name + " (Observed)")

        # Independence Day
        name = "Independence Day"
        self[date(year, month, day) + rd(days=2)] = name

        if self.observed and observed_delta != 0:
            self[date(year, month, day) +
                 rd(days=observed_delta + 2)] = (name + " (Observed)")

        # Lag Baomer
        name = "Lag B'Omer"
        year, month, day = lag_baomer(year, eve=False)
        self[date(year, month, day)] = name

        # Shavuot
        name = "Shavuot"
        year, month, day = shavuot(year, eve=True)
        self[date(year, month, day)] = name + " - Eve"
        self[date(year, month, day) + rd(days=1)] = name

        # Rosh Hashana
        name = "Rosh Hashanah"
        year, month, day = rosh_hashanah(year, eve=True)
        self[date(year, month, day)] = name + " - Eve"
        self[date(year, month, day) + rd(days=1)] = name
        self[date(year, month, day) + rd(days=2)] = name

        # Yom Kippur
        name = "Yom Kippur"
        year, month, day = yom_kippur(year, eve=True)
        self[date(year, month, day)] = name + " - Eve"
        self[date(year, month, day) + rd(days=1)] = name

        # Sukkot
        name = "Sukkot I"
        year, month, day = sukkot(year, eve=True)
        sukkot_start_dt = date(year, month, day)
        self[sukkot_start_dt] = name + " - Eve"
        self[sukkot_start_dt + rd(days=1)] = name

        name = "Sukkot"
        for offset in range(2, 7):
            self[sukkot_start_dt + rd(days=offset)] = name + " - Chol HaMoed"

        name = "Sukkot VII"
        self[sukkot_start_dt + rd(days=7)] = name + " - Eve"
        self[sukkot_start_dt + rd(days=8)] = name

        # Hanukkah
        name = "Hanukkah"
        year, month, day = hanukkah(year, eve=False)
        for offset in range(8):
            self[date(year, month, day) + rd(days=offset)] = name

        # Purim
        name = "Purim"
        year, month, day = purim(year, eve=True)
        self[date(year, month, day)] = name + " - Eve"
        self[date(year, month, day) + rd(days=1)] = name
        self[date(year, month, day) + rd(days=2)] = "Shushan Purim"