python整数数据存储地址_Python农历库zhdate及200年农历数据压缩存储方法
[视频] Python农历库zhdate,以及200年农历数据压缩存储方法 zhdate支持农历-公历互相转换、日期加减以及全中文日期生成,内置了1900-2100年的农历数据,仅依赖Python内置模块。该库保存农历数据的方法很巧妙,我当初看源码时就留下了非常深刻的印象。[农历库为什么使用查表法而不是计算] 农历是由天文观测确定的历法,并非数学周期。以月亮圆缺循环算做一个月,一轮是29天12
[视频] Python农历库zhdate,以及200年农历数据压缩存储方法
zhdate支持农历-公历互相转换、日期加减以及全中文日期生成,内置了1900-2100年的农历数据,仅依赖Python内置模块。该库保存农历数据的方法很巧妙,我当初看源码时就留下了非常深刻的印象。
[农历库为什么使用查表法而不是计算]
农历是由天文观测确定的历法,并非数学周期。以月亮圆缺循环算做一个月,一轮是29天12时44分3秒。于是农历把月份分成大月30天和小月29天,但是这导致了一年是354天,所以又添加了闰月。根据我国当前的农历执行标准,新月的判定以太阳、地球、月亮在地球轨道的夹角180°为据。各种农历算法本质上是计算日月运行轨迹,并且其中很多都不精确。
所以简单做法是直接保存农历数据,与公历(阳历)对应查询。
查表法:将一些事先计算好的结果,存储在数据中,需要时直接查取,节省计算开销。
[zhdate农历库的使用]
zhdate库内置了200年的农历数据,并且数据存储方法非常精妙。
[安装]
pip install zhdate
项目网址
github.com/CutePandaSh/zhdate
[各种例子]
逐步演示例子请看视频
[二百年农历数据的存储方法]
农历年份需要保存的数据❓
1. 闰月的月份
2. 闰月是30天还是29天
3. 每个月是30天还是29天
闰月的月份用整数就能保存;闰月的天数,0/1就可以保存(29或30);每月的天数,保存方法跟闰月相同
以2020年为例:
2020年,闰4月29天。
正月 至 腊月 (0表示29天,1表示30天)
0111 1001 0101
转换之后,200年农历数据,就是个整数列表
之后只要再记录任意一年的春节日期,就可算出200年的公历对应。作者为了减少计算量,直接保存了每年的春节日期
【视频】Python农历库zhdate,以及200年农历数据压缩存储方法
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)