天幹地支的算法
天幹地支的算法
今年海南高考歷史試題的第一題考了一道幹支紀年法,問1900年八國聯軍侵華應該是什麼年(用幹支表示)
題目如下:1.中國古代以幹支紀年,天幹是“甲、乙、丙、丁、戊、己、庚、辛、壬、癸”,地支是“子、醜、寅、卯、辰、巳、午、未、申、酉、戌、亥”。甲午戰爭發生於1894年,八國聯軍侵華的1900年應是()
A.己亥年
B.庚子年
C.辛醜年 D壬寅年
首先我們先要明白天幹與地支是如何搭配的
天幹:甲、乙、丙、丁、戊、己、庚、辛、壬、癸
地支:子、醜、寅、卯、辰、巳、午、未、申、酉、戌、亥。十天幹與十二地支按順序兩兩相配,從甲子到癸亥,共六十個組合,即六十甲子。(10與12的最小公倍數是60)
1894年是甲午年,那麼1895年的天幹是乙,依此類推,1900年的天幹就是庚;同樣,1894年的地支是午,1900年的地支就是子;所以1900年是庚子年。如果大家還想到1901年八國聯軍脅迫清政府簽訂了《辛醜條約》,就是1901年
是辛醜年,那麼天幹與地支的序號都往前推一下,也可以推出來1900年是庚子年。(《辛醜條約》中的所涉及的賠款,因為是針對1900年(庚子年)的義和團運動而規定,所以也叫庚子賠款。)
如果沒有告訴你相鄰的某個年份是什麼年,那麼又怎樣推算呢?比如,1861年用幹支紀年應是?1984年用幹支紀年應是?
這裏有一個計算的公式:N=X-3-60m(0≦N﹤60,m是一個自然數)
N是60個幹支的序號,比如N=1時就是甲子,X就是公元某某年。
那麼按照這個公式,1861年的序號就是:1860-3-60m,那麼就取m=2 9,這樣N=58,如果取m=30的話,N=-2,這時就要加60,也就是說0≦N﹤60,如果N=0,那麼就是第60個幹支。現在知道與1861年對應幹支是第58個,但是如果沒有上面那個表格可供查閱,怎麼辦呢?我們知道天幹是10個,地支是12個,10天幹與12地支按順序兩兩相配,那麼第58號對應的天幹的序號應是58÷10的余數,余數是8,第八個天幹是申;同樣,第58號對應的地支的序號是58÷12的余數,余數是10,第十個地支是酉,所以1861年是農歷辛酉年。
所以天幹的序號A=mod(N,10),地支的序號B= mod(N,12)
(大家就是對於m應該取多少,不用去想,很簡單,就像小學生列除法算式一樣,N-3那個數除以60,所得的商數就是m, 余數就是N)
註意:這裏的公式只適用於公元後的年份
公元前的計算公式應是N=X-2-60m,(因為公元前1年後就是公元元年也就是公元1年,沒有公元0年),(X就是一個負數了,m也取負數)
不過不知道這個公式是否準確。前面的公式N=X-3-60m來源於《簡明天文學教程》作者: 余明;出版社: 科學出版社。後面一個是我自己想的。
下面一個網友的帖子有一個這樣的計算方法,大家可以參考。網址是:
(常識)天幹地支的計算方法
一.西元後的:
天幹:甲4乙5丙6丁7戊8己9庚0辛1壬2
癸3
如1894年末尾一個數是4就甲年,依此類推
地支:子4醜5寅6卯7辰8巳9午10未11申
0 酉1戌2亥3
換算:1894除以12,余數是幾,就在地支中找幾.
二.西元前的:
天幹:甲7 乙6 丙5 丁4 戊3 己2 庚1 辛0 壬9 癸8
如公元前7年就是甲年依此類推
地支:子-9 醜-8 寅-7 卯-6 辰-5 巳-4 午-3 未-2 申-1
酉0 戌-11 亥-10
換算:如公元前221年,-221除以12,余數是幾,就在地支中找幾.
下載文檔原格式(Word原格式,共4頁)
付費下載