Any calendar nuts here? I\'ve been looking for information on how to calculate the holidays of the current year that occur irregularly in the Gregorian Calendar. Typically thi
I have coded both of these, using existing libraries.
Here is the code for Ramadan:
from convertdate import islamic
def ramadan(year):
islamic_year = islamic.from_gregorian(year, 1, 1)[0]
result = islamic.to_gregorian(islamic_year, 9, 1)
if result[0] < year:
result = islamic.to_gregorian(islamic_year+1, 9, 1)
elif result[0] > year:
result = islamic.to_gregorian(islamic_year-1, 9, 1)
return date(*result)
Here is the code for Chinese New Year:
from lunardate import LunarDate
_yot = ('Rat', 'Ox', 'Tiger', 'Rabbit', 'Dragon', 'Snake', 'Horse', 'Goat', 'Monkey', 'Rooster', 'Dog', 'Pig')
def year_of_the(year):
yr = (year - 2020) % len(_yot)
return _yot[yr]
def chinese_new_year(year):
"""Returns a tuple of the (date, year_of_the: str)"""
return (LunarDate(year, 1, 1).toSolarDate(), year_of_the(year))
I opened an enhancement request for convertdate to add them: https://github.com/fitnr/convertdate/issues/24