近期工作中遇到了节假日场景,而七夕节、中秋节、重阳节、端午节、清明节、春节这些都是农历的节日,对应到阳历日期并不是固定的。

所以就很有必要有一个转换方法,实现农历日期到阳历日期的转换。

已经有很多大牛对此做了实现,这里记录下亲测好用的方法。

1、首推:简书上 “Python 农历公历相互转换” https://www.jianshu.com/p/272c5dfa3eef

 他在github上有发布模块,可以直接pip安装使用。

并且在介绍页有使用方法示例,对于想快速使用、不关心实现细节的用户非常友好了。

为原作者点赞,非常有用的方法模块。


from zhdate import ZhDate as lunar_date
from datetime import datetime

#农历转阳历
date1 = lunar_date(2020,7,7) # 农历 2020年7月7 日期
print(date1) #农历2020年7月7日,直接返回农历日期字符串
print(date1.to_datetime()) #2020-08-25 00:00:00,农历转换成阳历日期  datetime 类型

#阳历转农历
dt_date2 = datetime(2020, 8, 25) #python自带的阳历date类型
print(dt_date2)  #2020-08-25 00:00:00
date2 = lunar_date.from_datetime(dt_date2) # 农历2020年7月7日 , 从阳历日期转换成农历日期
print(date2)

#20年闰4月,转的阳历是第二个4月的阳历日期
date3 = lunar_date(2020, 4, 30, leap_month=True) # 新建农历 2020年闰4月30日
print(date3.to_datetime()) #报日期超出范围的错误
date03 = lunar_date(2020, 4, 28, leap_month=True) # 新建农历 2020年闰4月28日
print(date03.to_datetime())  #2020-06-19 00:00:00

# 减法支持
new_lunar_date = lunar_date(2019, 1, 1) - 30  #减整数,得到差额天数的新农历对象
print(new_lunar_date)
new_lunar_date2 = lunar_date(2019, 1, 1) - lunar_date(2018, 1, 1) #两个lunar_date对象相减得到两个农历日期的差额
print(new_lunar_date2)
new_lunar_date3 = lunar_date(2019, 1, 1) - datetime(2019, 1, 1) # 减去阳历日期,得到农历日期和阳历日期之间的天数差额
print(new_lunar_date3)
# 加法支持
new_lunar_date4 = lunar_date(2019, 1, 1) + 30 # 加整数返回相隔天数以后的新农历对象
print(new_lunar_date4)
# 中文输出
new_lunar_date5 = lunar_date(2019, 1, 1)
print(new_lunar_date5.chinese())

# 当天的农历日期
print(lunar_date.today())

2、实现了 阳历日期转弄历日期的python方法 https://blog.csdn.net/qq_34160679/article/details/78713906

虽然是实现了阳历转农历,并不是我想要的转换函数,但我看他的转换函数写的不错,就复制来本地试了下,是好用的。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐