作为一个传统的人,一直坚持过农历生日,所以过农历生日的当天,阳历生日会围绕着出生当年的阳历生日前后变动。直到突然冒出一个想法,我这一辈子当中,我理论上的阳历生日(出生当年的阳历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
网友评论