Python開源日志01:pyGregorian2LunarCalendar公歷農(nóng)歷轉(zhuǎn)換、陽歷陰歷轉(zhuǎn)換取具、二十四節(jié)氣計(jì)算

pyGregorian2LunarCalendar

前言:
由于三體運(yùn)動(dòng)(主要地球脖隶、太陽、月球)無法準(zhǔn)確預(yù)測暇检,目前二十四節(jié)氣依然還是靠天文臺(tái)觀測产阱,Yovey使用傳說中[Y*D+C]-L方法實(shí)際有很多天數(shù)不準(zhǔn),def getSolarTerms(_date)12個(gè)if嵌套判斷讓代碼變得十分冗余块仆,由簡書網(wǎng)友“大咖_247c”首先發(fā)現(xiàn)計(jì)算不準(zhǔn)問題……
【方案過程】


image.png

1构蹬、在校驗(yàn)過數(shù)據(jù)與公式差異后,第一方案是采用15%黃經(jīng)夾角計(jì)算悔据,計(jì)算后差異依然存在庄敛,地球橢圓形軌道一年內(nèi)公轉(zhuǎn)速度差異超過7%;

開普勒.gif

2科汗、在發(fā)現(xiàn)橢圓軌道問題后藻烤,嘗試使用平均值、開普勒第二定律計(jì)算行星軌道头滔,計(jì)算值已經(jīng)十分貼近了怖亭,但依然和香港天文臺(tái)數(shù)據(jù)有差異,恍然大悟拙毫,地球依许、月亮、太陽三個(gè)天體呈現(xiàn)無法完美預(yù)測的三體運(yùn)動(dòng)缀蹄,甚至還包括木星引力影響(比如傳說中九星連珠峭跳,雖然引力抵消微弱),而且太陽本身也在運(yùn)動(dòng)缺前,地球和太陽的質(zhì)量也不是永恒不變的蛀醉,這就導(dǎo)致地球的恒星年相對(duì)穩(wěn)定,但回歸年浮動(dòng)振蕩衅码;
image.png

3拯刁、當(dāng)試過所有技術(shù)物理原理還無法調(diào)節(jié)誤差后,最終使用了Chen Jian的核心設(shè)計(jì)理念逝段,添加了十六進(jìn)制加存二十四節(jié)氣垛玻。(還是要靠香港天文臺(tái))
coding=UTF-8
1901~2100年農(nóng)歷數(shù)據(jù)表
Author: cuba3
base code by Yovey , http://www.reibang.com/p/8dc0d7ba2c2a
powered by Late Lee, http://www.latelee.org/python/python-yangli-to-nongli.html#comment-78
other author:Chen Jian, http://www.cnblogs.com/chjbbs/p/5704326.html
數(shù)據(jù)來源: http://data.weather.gov.hk/gts/time/conversion1_text_c.htm

【GITHUB/cuba3】:pyGregorian2LunarCalendar項(xiàng)目地址>>https://github.com/cuba3/pyGregorian2LunarCalendar

跟進(jìn)Chen Jian的設(shè)計(jì)思路,增加了一層向量壓縮奶躯。
因?yàn)?4節(jié)氣每個(gè)月新歷月固定有兩個(gè)帚桩,所以list保持順序,月份就不用存了嘹黔,一定是1账嚎、1、2、2郭蕉、3疼邀、3……
只記錄日期的話,日期數(shù)據(jù)過大召锈,所以對(duì)200年內(nèi)4800個(gè)數(shù)據(jù)進(jìn)行分組比對(duì)旁振,求出最小公約數(shù),得出最小公約數(shù)年向量[4, 19, 3, 18, 4, 19, 4, 19, 4, 20, 4, 20, 6, 22, 6, 22, 6, 22, 7, 22, 6, 21, 6, 21]烟勋,將爬取數(shù)據(jù)減去這個(gè)最小公約數(shù)向量规求,就得到了一個(gè)元素最大值不大于3的矩陣。
所有數(shù)字不大于3卵惦,兩個(gè)二進(jìn)制就可滿足存儲(chǔ)一個(gè)日期,一個(gè)十六進(jìn)制就能存儲(chǔ)一個(gè)月瓦戚,利用Python3 位移算法 << 2 將原本龐大的txt文本壓縮成長度200的12位16進(jìn)制list沮尿。

# 1901-2100年二十節(jié)氣最小公約數(shù)序列 向量壓縮法
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年二十節(jié)氣數(shù)據(jù) 每個(gè)元素的存儲(chǔ)格式如下:
# 1-24
# 節(jié)氣所在天(減去節(jié)氣最小公約數(shù))
# 1901-2100年香港天文臺(tái)公布二十四節(jié)氣按年存儲(chǔ)16進(jìn)制,1個(gè)16進(jìn)制為4個(gè)2進(jìn)制
solarTermsData=[
    0x6aaaa6aa9a5a, 0xaaaaaabaaa6a, 0xaaabbabbafaa, 0x5aa665a65aab, 0x6aaaa6aa9a5a, # 1901 ~ 1905
    0xaaaaaaaaaa6a, 0xaaabbabbafaa, 0x5aa665a65aab, 0x6aaaa6aa9a5a, 0xaaaaaaaaaa6a,
    0xaaabbabbafaa, 0x5aa665a65aab, 0x6aaaa6aa9a56, 0xaaaaaaaa9a5a, 0xaaabaabaaeaa,
    0x569665a65aaa, 0x5aa6a6a69a56, 0x6aaaaaaa9a5a, 0xaaabaabaaeaa, 0x569665a65aaa,
    0x5aa6a6a65a56, 0x6aaaaaaa9a5a, 0xaaabaabaaa6a, 0x569665a65aaa, 0x5aa6a6a65a56,
    0x6aaaa6aa9a5a, 0xaaaaaabaaa6a, 0x555665665aaa, 0x5aa665a65a56, 0x6aaaa6aa9a5a,
    0xaaaaaabaaa6a, 0x555665665aaa, 0x5aa665a65a56, 0x6aaaa6aa9a5a, 0xaaaaaaaaaa6a,
    0x555665665aaa, 0x5aa665a65a56, 0x6aaaa6aa9a5a, 0xaaaaaaaaaa6a, 0x555665665aaa,
    0x5aa665a65a56, 0x6aaaa6aa9a5a, 0xaaaaaaaaaa6a, 0x555665655aaa, 0x569665a65a56,
    0x6aa6a6aa9a56, 0xaaaaaaaa9a5a, 0x5556556559aa, 0x569665a65a55, 0x6aa6a6a65a56,
    0xaaaaaaaa9a5a, 0x5556556559aa, 0x569665a65a55, 0x5aa6a6a65a56, 0x6aaaa6aa9a5a,
    0x5556556555aa, 0x569665a65a55, 0x5aa665a65a56, 0x6aaaa6aa9a5a, 0x55555565556a,
    0x555665665a55, 0x5aa665a65a56, 0x6aaaa6aa9a5a, 0x55555565556a, 0x555665665a55,
    0x5aa665a65a56, 0x6aaaa6aa9a5a, 0x55555555556a, 0x555665665a55, 0x5aa665a65a56,
    0x6aaaa6aa9a5a, 0x55555555556a, 0x555665655a55, 0x5aa665a65a56, 0x6aa6a6aa9a5a,
    0x55555555456a, 0x555655655a55, 0x5a9665a65a56, 0x6aa6a6a69a5a, 0x55555555456a,
    0x555655655a55, 0x569665a65a56, 0x6aa6a6a65a56, 0x55555155455a, 0x555655655955,
    0x569665a65a55, 0x5aa6a5a65a56, 0x15555155455a, 0x555555655555, 0x569665665a55,
    0x5aa665a65a56, 0x15555155455a, 0x555555655515, 0x555665665a55, 0x5aa665a65a56,
    0x15555155455a, 0x555555555515, 0x555665665a55, 0x5aa665a65a56, 0x15555155455a,
    0x555555555515, 0x555665665a55, 0x5aa665a65a56, 0x15555155455a, 0x555555555515,
    0x555655655a55, 0x5aa665a65a56, 0x15515155455a, 0x555555554515, 0x555655655a55,
    0x5a9665a65a56, 0x15515151455a, 0x555551554515, 0x555655655a55, 0x569665a65a56,
    0x155151510556, 0x555551554505, 0x555655655955, 0x569665665a55, 0x155110510556,
    0x155551554505, 0x555555655555, 0x569665665a55, 0x55110510556, 0x155551554505,
    0x555555555515, 0x555665665a55, 0x55110510556, 0x155551554505, 0x555555555515,
    0x555665665a55, 0x55110510556, 0x155551554505, 0x555555555515, 0x555655655a55,
    0x55110510556, 0x155551554505, 0x555555555515, 0x555655655a55, 0x55110510556,
    0x155151514505, 0x555555554515, 0x555655655a55, 0x54110510556, 0x155151510505,
    0x555551554515, 0x555655655a55, 0x14110110556, 0x155110510501, 0x555551554505,
    0x555555655555, 0x14110110555, 0x155110510501, 0x555551554505, 0x555555555555,
    0x14110110555, 0x55110510501, 0x155551554505, 0x555555555555, 0x110110555,
    0x55110510501, 0x155551554505, 0x555555555515, 0x110110555, 0x55110510501,
    0x155551554505, 0x555555555515, 0x100100555, 0x55110510501, 0x155151514505,
    0x555555555515, 0x100100555, 0x54110510501, 0x155151514505, 0x555551554515,
    0x100100555, 0x54110510501, 0x155150510505, 0x555551554515, 0x100100555,
    0x14110110501, 0x155110510505, 0x555551554505, 0x100055, 0x14110110500,
    0x155110510501, 0x555551554505, 0x55, 0x14110110500, 0x55110510501,
    0x155551554505, 0x55, 0x110110500, 0x55110510501, 0x155551554505,
    0x15, 0x100110500, 0x55110510501, 0x155551554505,0x555555555515]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末较解,一起剝皮案震驚了整個(gè)濱河市畜疾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌印衔,老刑警劉巖啡捶,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異奸焙,居然都是意外死亡瞎暑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門与帆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來了赌,“玉大人,你說我怎么就攤上這事玄糟∥鹚” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵阵翎,是天一觀的道長逢并。 經(jīng)常有香客問我,道長郭卫,這世上最難降的妖魔是什么砍聊? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮箱沦,結(jié)果婚禮上辩恼,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好灶伊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布疆前。 她就那樣靜靜地躺著,像睡著了一般聘萨。 火紅的嫁衣襯著肌膚如雪竹椒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天米辐,我揣著相機(jī)與錄音胸完,去河邊找鬼。 笑死翘贮,一個(gè)胖子當(dāng)著我的面吹牛赊窥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播狸页,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼锨能,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了芍耘?” 一聲冷哼從身側(cè)響起址遇,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎斋竞,沒想到半個(gè)月后倔约,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坝初,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年浸剩,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脖卖。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乒省,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出畦木,到底是詐尸還是另有隱情袖扛,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布十籍,位于F島的核電站蛆封,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏勾栗。R本人自食惡果不足惜惨篱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望围俘。 院中可真熱鬧砸讳,春花似錦琢融、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至常遂,卻和暖如春纳令,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背克胳。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國打工平绩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人漠另。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓捏雌,卻偏偏與公主長得像,于是被迫代替她去往敵國和親酗钞。 傳聞我的和親對(duì)象是個(gè)殘疾皇子腹忽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355