农历,是我国现行的传统历法。它是根据月相的变化周期,每一次月相朔望变化为一个月,参考太阳回归年为一年的长度,并加入二十四节气与设置闰月以使平均历年与回归年相适应。
由于ZhDate属于Python的第三开源模块,因此需要额外安装、导后,才能使。直接在命令窗中输如下命令:
pipinstallzhdate
zhdate库,不用网络接口直接本地计算中国农历,支持农历阳历互转。
在交互式环境中输入如下命令:
fromzhdateimportZhDatedate1=ZhDate(2022,2,2)#新建农历2022年二月初二(龙抬头)的日期对象print(date1)#直接返回农历日期字符串d输出:
农历2022年2月2日
t_date1=date1.to_datetime()t_date1输出:
datetime.datetime(2022,3,4,0,0)
fromdatetimeimportdatetimedt_date2=datetime(2022,2,6)date2=ZhDate.from_datetime(dt_date2)#从阳历日期转换成农历日期对象date2输出:
农历2022年1月6日
date3=ZhDate(2020,4,15)#新建农历2020年4月15日print(date3.to_datetime())输出:
2020-05-0700:00:00
date3=ZhDate(2020,4,15)#新建农历2020年闰4月15日print(date3.to_datetime())输出:
2020-06-0600:00:00
这一年农历4月15日的同学,可以分别在5月7日和6月6日分别过两次农历生日。
中文输出,在交互式环境中输入如下命令:
dt_date4=datetime(2022,3,4)date4=ZhDate.from_datetime(dt_date4)print(date4.chinese())输出:
二零二二年二月初二壬寅年(虎年)
当天的农历日期,在交互式环境中输入如下命令:
ZhDate.today()输出:
农历2022年2月7日
此外,zhdate模块也支持加减法。两个zhdate对象相减可以得到两个农历日期的差额,同时加整数也可以返回相隔天数以后的新农历对象。
下面通过一个实战项目练习一下这个zhdate模块。
加入我们想快速地了解今天距离某个节日还有多少天?可以使用zhdate和datetime库搭配解决这个问题。
today=datetime.now()data_str=today.strftime('%Y-%m-%d')data_str输出:
计算距离劳动节的天数,在交互式环境中输入如下命令:
oneDay=datetime(2022,5,1)difference=oneDay.toordinal()-today.toordinal()print(f'今天{data_str}距离五一劳动节还有{difference}天')输出:
今天2022-03-09距离五一劳动节还有53天
计算距离中秋节的天数,在交互式环境中输入如下命令:
oneDay=ZhDate(2022,8,15).to_datetime()difference=oneDay.toordinal()-today.toordinal()print(f'今天{data_str}距离中秋节还有{difference}天')