美文网首页Python奇技yin巧
Python里用borax包玩转时间操作,比如计算阴历生日和阳历

Python里用borax包玩转时间操作,比如计算阴历生日和阳历

作者: 天地本无心 | 来源:发表于2021-03-26 16:07 被阅读0次

    作为一个传统的人,一直坚持过农历生日,所以过农历生日的当天,阳历生日会围绕着出生当年的阳历生日前后变动。直到突然冒出一个想法,我这一辈子当中,我理论上的阳历生日(出生当年的阳历05.13)和我过农历生日(03.29)时对应的阳历日期,会有几次重叠?

    起初我准备自己撸代码,后来一番检索,发现了一个很好的轮子,一个python包,叫borax,下面抛砖引玉,介绍这个包的几种应用场景。

    1. 计算重要节日日期还有多少天来到。

    加载相应的包和函数:

    import borax
    from borax.calendars import LunarDate
    from borax.calendars.festivals import get_festival, LunarSchema, DayLunarSchema
    

    具体代码:

    festival_spring = get_festival('春节')
    festival_christmas = get_festival("圣诞节")
    festival_midautumn = get_festival("中秋节")
    print("距离春节的天数为: {}天".format(festival_spring.countdown())) 
    print("距离圣诞节的天数为: {}天".format(festival_christmas.countdown())) 
    print("距离中秋节的天数为: {}天".format(festival_midautumn.countdown()))
    

    结果输出:

    距离春节的天数为: 312天
    距离圣诞节的天数为: 274天
    距离中秋节的天数为: 179天
    

    在2021年03月26日,写下这个教程的时候,我们可以看到春节,中秋节等节日还是如此遥远,不过岁月漫长,值得等待。

    2. 计算某一天代表的天干地支表示法,比如自己的生辰八字。

    这个需求比较小众,但是你拿去找陈瞎子大金牙之类的人算命,人家肯定不会看你的星座啥的那一套,这时候会需要你的天干地支。
    比如计算我gakki阴历生日的天干地支:

    gakki_birth = LunarDate(1988,4,27)
    gakki_birth.strftime('生日的干支表示法为:%G')
    

    输出:

    'gakki的生日的干支表示法为:戊辰年戊午月丁酉日'
    

    嗯,gakki果然是命中注定。

    3. 计算你比对方大或者小的天数。

    这个需求就比较普遍,男女之间谈恋爱,特别想知道自己早出生了多少天,独自在世界上度过了多少天,直到另一个有趣的灵魂出现在人间。

    就像我跟gakki, 君生我未生,我生君未老。

    年龄从来都不是爱情的绊脚石,就像目前国际物理第一人杨振宁和夫人之间的爱情佳话。那么杨老师大翁老师多少天呢?

    import time
    Yang_birth = '1922-10-1'
    Weng_birth = '1976-7-1'
    Yang_birth = time.mktime(time.strptime(Yang_birth,'%Y-%m-%d'))
    Weng_birth = time.mktime(time.strptime(Weng_birth,'%Y-%m-%d'))
    count_days = int((Weng_birth - Yang_birth)/(24*60*60))
    print("大{}天".format(count_days))
    

    输出

    大19632天
    

    伟大的爱情,从来都不在意时间。

    4. 计算自己的过农历生日时当天的阳历,正好是自己理论上的阳历生日的年份。

    代码:

    for year in range(1991,2101):
        lunar_birth = LunarDate(year,3,29)
        solar = lunar_birth.to_solar_date()
        if solar.month == 5 and solar.day == 13:
            print(solar)
    

    输出:

    1991-05-13
    2056-05-13
    2075-05-13
    2094-05-13
    

    也就是说,我下一次农历和阳历两个生日一起过的时候,是2056年,保佑自己能活到那一年。

    这个python包非常好玩,上面仅仅作为抛砖引玉,更详细的功能可以自己去查询文档。


    Done!
    First: 2021/03/26

    相关文章

      网友评论

        本文标题:Python里用borax包玩转时间操作,比如计算阴历生日和阳历

        本文链接:https://www.haomeiwen.com/subject/vvwjhltx.html