天干地支 用已知公曆年份計算干支紀年

用公曆年份計算干支紀年很簡單:年份數減3,除以10的餘數是天干,除以12的餘數是地支。從已知日期計算干支紀日的公式和蔡勒公式很相像,如下:g = 4C + [C/4] + 5y + [y/4] + [3*(M+1) / 5] + d - 3z = 8C + [C/4] + 5y + [y/4] + [3*(M+1) / 5] + d + 7 + i (奇數月i=0,偶數月i=6) 其中C是世紀數減一,y是年份後兩位,M是月份,d是日數。1月和2月按上一年的13月和14月來算。g除以10的餘數是天干,z除以10的餘數是地支。 巧妙運用和干支有關的幾個計算公式,還可以在沒有萬年曆的情況下推算出古書里的干 支紀日對應的公曆日期。干支紀日,從夏朝就開始使用了。根據對中國古代歷史典籍《春秋》中記載的日食的研究,我國的干支紀日,從魯隱公三年二月己巳日(公元前720年2月10日)開始,一直到 今天,都未曾間斷。干支紀年的出現則略晚一些,直到東漢元和二年(公元85年)政府才下令在全國實行,至今也未曾間斷。因此,凡是需要接觸中國歷史的人,總不免要遇到查某一年的干支或某一日的干支,以及由年干支和日干支推算是哪一年或哪一日的問題。通常,這類轉換靠查曆書都可以解決。但既然干支也是一個循環系統,自然也就有從年份和日期求干支的公式。干支是天乾和地支的組合:序號12345678910十天干甲乙丙丁戊已庚辛壬癸序號123456789101112十二地支子丑寅卯辰巳午未申酉戌亥天干地支相配生成六十甲子用十乾的「甲、丙、戊、庚、壬」和十二支的「子、寅、辰、午、申、戌」相配,十乾的「乙、丁、已、辛、癸」和十二支的「丑、卯、巳、未、酉、亥」相配,天乾和地支從「甲子」開始,按順序逐一相配,各用到最後一個時,再從第一個開始繼續相配,就形成了六十個干支共配成六十組,稱為《六十甲子》。為什麼是六十個干支呢?這個從數學上很容易回答。根據干支的構成條件,其循環周期必然是天干數和地干數的最小公倍數。而60正是10和12的最小公倍數。如果我們把「甲子」編為1號,「乙丑」編為2號,這樣編下去,就可以得到一個干支和序號的對照表,序干支序干支序干支序干支序干支1甲子13丙子25戊子37庚子49壬子2乙丑14丁丑26己丑38辛丑50癸丑3丙寅15戊寅27庚寅39壬寅51甲寅4丁卯16已卯28辛卯40癸卯52乙卯5戊辰17庚辰29壬辰41甲辰53丙辰6已巳18辛巳30癸巳42乙巳54丁巳7庚午19壬午31甲午43丙午55戊午8辛未20癸未32乙未44丁未56已未9壬申21甲申33丙申45戊申57庚申10癸酉22乙酉34丁酉46已酉58辛酉11甲戌23丙戌35戊戌47庚戌59壬戌12乙亥24丁亥36已亥48辛亥60癸亥細心觀察這張表,不難發現,由序號得到對應干支是很容易的,序號除以10的餘數就是天乾的序數(如果餘數是0,則為最後一個天干癸),序號除以12的餘數就是地支的序數(如果餘數是0,則為最後一個地支亥)。本人使用的公元年份干支計算方法:公元年-3÷60的餘數即為干支序號數公元前年-2÷60的餘數即為干支序號數現在有了計算機,可以用程序實現任何複雜的計算。下面是本人用程序實現的已知公元年份查詢干支年和已知干支年查詢公元年的小軟體:
推薦閱讀:

地支為什麼會有六合、六衝?
天干地支可以用數字替換記憶嗎?
天干地支(上)
天干地支的記時、記日、記月、紀年法
天干地支 有說法

TAG:計算 | 公曆 | 天干地支 | 干支 |