温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python如何实现农历转换

发布时间:2022-03-15 10:11:45 来源:亿速云 阅读:285 作者:iii 栏目:开发技术

这篇“Python如何实现农历转换”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python如何实现农历转换”文章吧。

    Python如何实现农历转换

    农历,是我国现行的传统历法。它是根据月相的变化周期,每一次月相朔望变化为一个月,参考太阳回归年为一年的长度,并加入二十四节气与设置闰月以使平均历年与回归年相适应。

    对于我们处理数据来说,并不需要去详细研究农历与公历之间的转换关系。在Python中,ZhDate库支持农历-公历互相转换、日期加减以及全中文日期生成,内置了1900-2100年的农历数据,仅依赖Python内置模块。github.com/CutePandaSh/zhdate

    由于ZhDate属于Python的第三⽅开源模块,因此需要额外安装、导⼊后,才能使⽤。直接在命令⾏窗⼝中输⼊如下命令:

    pip install zhdate

    详细使用方法

    zhdate库,不用网络接口直接本地计算中国农历,支持农历阳历互转。

    阳历与农历日期的相互转换

    在交互式环境中输入如下命令:

    from zhdate import ZhDate
    
    date1 = 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)

    在交互式环境中输入如下命令:

    from datetime import datetime
    
    dt_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-07 00:00:00

    Python如何实现农历转换

    在交互式环境中输入如下命令:

    date3 = ZhDate(2020, 4, 15)  # 新建农历 2020年闰4月15日
    print(date3.to_datetime())

    输出:

    2020-06-06 00: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对象相减可以得到两个农历日期的差额,同时加整数也可以返回相隔天数以后的新农历对象。

    Python如何实现农历转换

    实战:计算节日距离天数

    下面通过一个实战项目练习一下这个zhdate模块。

    加入我们想快速地了解今天距离某个节日还有多少天?可以使用zhdatedatetime库搭配解决这个问题。

    在交互式环境中输入如下命令:

    today = datetime.now()
    data_str = today.strftime('%Y-%m-%d')
    data_str

    输出:

    '2022-03-09'

    计算距离劳动节的天数,在交互式环境中输入如下命令:

    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} 天')

    输出:

    今天 2022-03-09 距离中秋节还有 185 天

    以上就是关于“Python如何实现农历转换”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI