From 842532963f0fb7127e24a06a67473a6c0a4a6a3e Mon Sep 17 00:00:00 2001 From: luke Date: Thu, 13 Jan 2022 11:24:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=88=90=E9=94=99=E8=AF=AF=E5=90=8D?= =?UTF-8?q?=E8=AF=8D=E6=B3=A8=E9=87=8A=E8=A1=A8=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 11 ++++++----- cnlunar/config.py | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) 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