diff --git a/README.md b/README.md index 044fe42..99a249c 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ 2、无数据库,依赖库少,运行快速,提供内容丰富 -3、主要内容来自于《钦定协纪辨方书》,每一个神煞宜忌都有依据,遵循宜忌等第表,包含民用、御用事宜,且支持港式(通书配图)八字月柱算法-默认,通书原文文字农历月份算法,具体看date2LunarData.py +3、主要内容来自于《钦定协纪辨方书》,每一个神煞宜忌都有依据,遵循宜忌等第表,包含民用、御用事宜,且支持港式(通书配图)八字月柱算法-默认,通书原文文字农历月份算法,具体看demo.py 4、不盈利,开源免费,长期有人维护 @@ -12,7 +12,8 @@ 特别鸣谢@DarkmoonRabbit(https://github.com/DarkmoonRabbit) -相关产品: +使用本开源项目的相关产品: + 翻黄历 https://www.fanhuangli.com/ 万年历-最新专业桌面老黄‪历 https://apps.apple.com/cn/app/id1555822960 @@ -90,15 +91,15 @@ other author:Chen Jian, http://www.cnblogs.com/chjbbs/p/5704326.html 跟进Chen Jian的设计思路,增加了一层向量压缩。 因为24节气每个月新历月固定有两个,所以list保持顺序,月份就不用存了,一定是1、1、2、2、3、3…… -只记录日期的话,日期数据过大,所以对200年内4800个数据进行分组比对,求出最小公约数,得出最小公约年向量[4, 19, 3, 18, 4, 19, 4, 19, 4, 20, 4, 20, 6, 22, 6, 22, 6, 22, 7, 22, 6, 21, 6, 21],将爬取数据减去这个最小公约向量,就得到了一个元素最大值不大于3的矩阵。 +只记录日期的话,日期数据过大,所以对200年内4800个数据进行分组比对,求出最小数(木桶短板数),得出最小数向量[4, 19, 3, 18, 4, 19, 4, 19, 4, 20, 4, 20, 6, 22, 6, 22, 6, 22, 7, 22, 6, 21, 6, 21],将爬取数据减去这个最小数向量,就得到了一个元素最大值不大于3的矩阵。 所有数字不大于3,两个二进制就可满足存储一个日期,一个十六进制就能存储一个月,利用Python3 位移算法 << 2 将原本庞大的txt文本压缩成长度200的12位16进制list。 ``` -# 1901-2100年二十节气最小公约数序列 向量压缩法 +# 1901-2100年二十节气最小数序列 向量压缩法 encryptionVectorList=[4, 19, 3, 18, 4, 19, 4, 19, 4, 20, 4, 20, 6, 22, 6, 22, 6, 22, 7, 22, 6, 21, 6, 21] # 1901-2100年二十节气数据 每个元素的存储格式如下: # 1-24 -# 节气所在天(减去节气最小公约数) +# 节气所在天(减去节气最小数) # 1901-2100年香港天文台公布二十四节气按年存储16进制,1个16进制为4个2进制 solarTermsData=[ 0x6aaaa6aa9a5a, 0xaaaaaabaaa6a, 0xaaabbabbafaa, 0x5aa665a65aab, 0x6aaaa6aa9a5a, # 1901 ~ 1905 diff --git a/cnlunar/config.py b/cnlunar/config.py index 4e84410..4f9ebf6 100644 --- a/cnlunar/config.py +++ b/cnlunar/config.py @@ -54,11 +54,11 @@ upperNum = ['零', '一', '二', '三', '四', '五', '六', '七', '八', '九'] weekDay = ['星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'] -# 1901-2100年二十节气最小公差数序列 向量压缩法 +# 1901-2100年二十节气最小数序列 向量压缩法 encryptionVectorList = [4, 19, 3, 18, 4, 19, 4, 19, 4, 20, 4, 20, 6, 22, 6, 22, 6, 22, 7, 22, 6, 21, 6, 21] # 1901-2100年二十节气数据 每个元素的存储格式如下: # 1-24 -# 节气所在天(减去节气最小公约数) +# 节气所在天(减去节气最小数) # 1901-2100年香港天文台公布二十四节气按年存储16进制,1个16进制为4个2进制 solarTermsData = [ 0x6aaaa6aa9a5a, 0xaaaaaabaaa6a, 0xaaabbabbafaa, 0x5aa665a65aab, 0x6aaaa6aa9a5a, # 1901 ~ 1905