我们的项目的初衷是支持从农历的1900年1月1日,至2100年12月29日。
2100年12月29日对应的公历日期为2101-1-28。
而在from_datetime()方法中,是直接将农历的年份赋值为公历年份,然后通过判断当前公历日期是否在当年农历新年之前来决定农历的年份是否减1:
lunar_year = dt.year
if (datetime.strptime(CHINESENEWYEAR[lunar_year-1900], '%Y%m%d') - dt).days > 0:
lunar_year -= 1
对于在农历日期2100年12月29日前,但公历年份为2101的日期来说,这段代码中的lunar_year-1900为201,但是在CHINESENEWYEAR中一共设置了201个春节的公历日期,最大索引为200,这会导致运行时报错。建议在CHINESENEWYEAR增加一个2101年春节的公历日期,这样from_datetime()方法就完全支持从农历的1900年1月1日至2100年12月29日的日期了。
我们的项目的初衷是支持从农历的1900年1月1日,至2100年12月29日。
2100年12月29日对应的公历日期为2101-1-28。
而在
from_datetime()方法中,是直接将农历的年份赋值为公历年份,然后通过判断当前公历日期是否在当年农历新年之前来决定农历的年份是否减1:对于在农历日期2100年12月29日前,但公历年份为2101的日期来说,这段代码中的
lunar_year-1900为201,但是在CHINESENEWYEAR中一共设置了201个春节的公历日期,最大索引为200,这会导致运行时报错。建议在CHINESENEWYEAR增加一个2101年春节的公历日期,这样from_datetime()方法就完全支持从农历的1900年1月1日至2100年12月29日的日期了。