久久精品成人_污污的动态图_男女无遮挡毛片视频播放_拼多多免拼单怎么操作

六 十 干 支

初稿: 2018年10月     最近一次重大修訂: 2019年7月7日


干支是中國傳統的紀數系統,現在還在使用。干支紀數是由天干和地支組合。天干有十個,地支有十二個,每一個地支有一種動物與之對應,稱為生肖或屬相。下表列出所有天干、地支及其對應的十二生肖。


表 一: 天 干 和 地 支
天干地支生肖
11
22
33
44
55
66
77
88
99
1010
11
12

干支紀數由甲子(1,1)起,然后是乙丑(2,2)、丙寅(3,3)、丁卯(4,4)……癸酉(10,10)。到癸酉時天干用盡了,之后的規則是凡是天干或地支用盡后須從頭數起,所以癸酉之后是甲戌(1,11)、乙亥(2,12)、丙子等等直到癸亥(10,12)。癸亥后的干支是甲子(1,1),然后是乙丑(2,2)等等循環不息。如下表所示,從甲子到癸亥一共有六十個干支。

表 二: 六 十 干 支
1甲子16己卯31甲午46己酉
2乙丑17庚辰32乙未47庚戌
3丙寅18辛巳33丙申48辛亥
4丁卯19壬午34丁酉49壬子
5戊辰20癸未35戊戌50癸丑
6己巳21甲申36己亥51甲寅
7庚午22乙酉37庚子52乙卯
8辛未23丙戌38辛丑53丙辰
9壬申24丁亥39壬寅54丁巳
10癸酉25戊子40癸卯55戊午
11甲戌26己丑41甲辰56己未
12乙亥27庚寅42乙巳57庚申
13丙子28辛卯43丙午58辛酉
14丁丑29壬辰44丁未59壬戌
15戊寅30癸巳45戊申60癸亥

干支可用來紀年、紀月、紀日和紀時,但是現在已很少用干支來紀月、紀日和紀時了。下面簡略介紹如何用干支來紀年、紀月、紀日和紀時。


干 支 紀 年

現在的農歷年一般只用干支紀年,六十年循環一周。最近一周始于1984年農歷甲子年。其他公歷y年的農歷年干支可用同余算術算出。所謂公歷y年的農歷年是指年首最接近公歷y年1月1日的農歷年。例如2018年的農歷年是指農歷戊戌年,始于公歷2018年2月16日,終于2019年2月4日。

農歷年的天干十年循環一周,年地支十二年循環一周。已知1984年的農歷年干支為甲子,以mod(X,Y)表示X除以Y后所得之余數,可推出公歷y年之農歷年天干數為 1 + mod(y+6, 10),即將公歷年數加六,除以十,然后把所得的余數加一。年地支數為 1 + mod(y+8, 12)。依此可算出2018年之農歷年天干數為五,即戊,地支數為十一,即戌。所以2018年之農歷年干支是戊戌。


月 建 和 「三 正」

月建是指農歷月的地支名,但不計閏月,閏月沒有月建。由于一年有十二個月(不計閏月),每一個月有固定的月建。建子月取含冬至的月份,建丑月是下一個月(不計閏月),余類推。月建在早期歷法頗為重要。

傳說早期各朝代以不同的月建作為一年的年首。據說夏代以建寅(即現在的正月)的月份為第一個月;商朝以建丑(即現在的十二月)為第一個月;周朝以建子的月份(現在的十一月)為第一個月。每次更改月份次序,就把更改后的第一個月稱為「正月」,「正」是改正的意思。所以夏正為建寅,殷正為建丑,周正為建子。夏正、殷正和周正稱為「三正」。

現在一般認為三正之傳說不可信。戰國時代,各國施行不同歷法,當時通行的歷法主要有六種:周歷、魯歷、殷歷、夏歷、黃帝歷和顓頊歷,合稱「古六歷」。六歷之名并非是不同時期不同朝代所制定,而是戰國時期的歷法家托古而作。所謂「三正」,只是指夏歷、殷歷和周歷所用的三個不同年首。所以「三正」不是夏商周三朝交替使用的歷法年首,而是春秋戰國時期不同地域施行歷法的三個不同年首。

秦朝的歷法和顓頊歷很接近,兩者都是以建亥(現在的十月)作為一年之始,但仍依夏歷稱建亥為十月,歷法的月序是十月、十一月、十二月、正月、二月……九月。漢朝建立后基本上沿用秦歷,直到漢武帝太初元年(公元前104年)才頒行新歷法,以建寅(正月)為年首。此后二千多年來,除了王莽和魏明帝一度改用殷正,武則天和唐肅宗一度改用周正外,一般都用夏正,到現在仍通行。

最后要指出,「建」是指北斗七星的斗柄,即玉衡、開陽和瑤光三星(見圖一)。方位可用十二地支表示,方法是將地平圈分為十二等分來配十二地支,北方是子,東方是卯,南方是午,西方是酉(見圖二)。在古代,北斗七星比現在更接近北天極,在中原地區(約北緯35°)大約在唐朝以前斗柄全年都在地平線之上,那時冬至傍晚可見斗柄指向北(子),所以含冬至的月份稱為建子。由于歲差的原故,現在北斗七星離北天極較遠。在中原地區,冬至傍晚瑤光在地平線以下,玉衡和開陽在北方地平線附近。現在要去到北緯41°以北的地方才可看到斗柄北指。北緯41°大概在現在的內蒙古呼和浩特市、河北省承德市、遼寧省錦州市等地區。

北斗七星      地支與方位


干 支 紀 月

干支紀月較為復雜,據維基百科所述,有兩種干支紀月法。我在年歷網頁里使用了第一種紀月法。其實干支紀月即使在古代的史書和日歷里也不常用,干支紀月最常用于占卜和風水。年歷網頁里自漢武帝太初元年(公元前104年)起才注有月干支。這里姑且也簡單介紹兩種干支紀月法。

第一種紀法

此一紀法以農歷月配干支,但不計閏月,閏月的干支取上一月的干支。紀法是把月建配上天干,六十月(即五年)循環一周。由于年天干的周期是十年,年干與月干有二對一的對應關系。例如年干為甲或己時,正月的干支必然是丙寅,二月是丁卯,其余可以類推。下表列出月干支與年天干的關系。


年天干正月二月三月四月五月六月七月八月九月十月十一月十二月
甲、己丙寅丁卯戊辰己巳庚午辛未壬申癸酉甲戌乙亥丙子丁丑
乙、庚戊寅己卯庚辰辛巳壬午癸未甲申乙酉丙戌丁亥戊子己丑
丙、辛庚寅辛卯壬辰癸巳甲午乙未丙申丁酉戊戌己亥庚子辛丑
丁、壬壬寅癸卯甲辰乙巳丙午丁未戊申己酉庚戌辛亥壬子癸丑
戊、癸甲寅乙卯丙辰丁巳戊午己未庚申辛酉壬戌癸亥甲子乙丑

從上表可方便算出任何農歷年的月干支。例如2018年是農歷戊戌年,從上表可知年天干為戊的五月干支是戊午,所以戊戌年的五月干支是戊午。有《五虎遁月歌》歌訣以便記憶正(寅)月的月干與年干的關系: 甲己之年丙作初,乙庚之歲戊為頭,丙辛歲首從庚起,丁壬壬位順流行,若問戊癸何方法,甲寅之上好推求。

其實要算出某年的月干只需記住年干為甲時正月的月干是丙就可以了,其他月的月干可先計算其與甲年干的月數,然后用同余算術推出其月干。這里以戊戌年五月為例,戊是甲之后的四個天干,所以如果以甲年算起,戊年五月就是甲年的 (4×12+5) 或五十三月,戊年五月的天干是丙往下數第五十二個天干,由于mod(52, 10) = 2,即五十二除以十之余數為二,丙以后的第二個天干是戊,所以戊戌年的五月的干支是戊午。

第二種紀法

這種紀法不依農歷的月份,而是根據二十四節氣分月。子月定為由大雪至小寒前一日,丑月定為由小寒至立春前一日等等。下表列出各月對應的節氣段,近似農歷月份,和近似的公歷日期。


月地支節氣段近似農歷月份近似公歷日期
大雪至小寒前一日十一月12月7日–1月5日
小寒至立春前一日十二月1月6日–2月3日
立春至驚蟄前一日正月2月4日–3月5日
驚蟄至清明前一日二月3月6日–4月4日
清明至立夏前一日三月4月5日–5月5日
立夏至芒種前一日四月5月6日–6月5日
芒種至小暑前一日五月6月6日–7月6日
小暑至立秋前一日六月7月7日–8月7日
立秋至白露前一日七月8月8日–9月7日
白露至寒露前一日八月9月8日–10月7日
寒露至立冬前一日九月10月8日–11月6日
立冬至大雪前一日十月11月7日–12月6日

二十四節氣是根據太陽在天球上的位置而定,不考慮月相,所以是純陽歷。公歷也是純陽歷,所以以上各月的公歷日期每年最多只有一兩日之差。農歷是陰陽歷,既考慮月相也顧及太陽位置,以上各月的起始日期在農歷中可以有多至三十日的變動。

古代稱由冬至到下一個冬至的周期為歲,稱由農年正月初一到下一年正月初一的周期為年。所以歲是純陽歷的概念,而年則屬陰陽歷。一歲的周期是三百六十五或三百六十六日,平均值接近回歸年(365.242日)。一年的周期大約是三百五十四日(無閏月時)或約三百八十四日(有閏月時)。用這種節氣定月的法則,一歲有十二個月,每月大至有三十或三十一日,沒有閏月。月份配上天干,六十月(即五歲)循環一周。


干 支 紀 日

日干支以六十天循環一周。中國最遲從春秋魯隱公三年(公元前720年)起就有史藉用干支紀日,距今已有二千七百多年,其間干支紀日既沒有間斷,又沒有發生過錯亂。

日的干支可從該日的儒略日數以同余算術推出。儒略日數是指從公元前4713年1月1日正午起算的積日,所以每日正午的儒略日數是整數。這里沒有說明所用的時間標準(UT1 或地方時等),是假設了起算時刻(公元前4713年1月1日正午)和每日正午所指的時刻用相同的時間標準。公歷某月日的儒略日數有公式計算(例如維基百科),我也建立了儒略日數和日干支計算器網頁,提供公歷日期與儒略日數和日干支的轉換。

由于日干支的周期是六十天,只要知道某一儒略日數的日干支,便可用同余算術推出儒略日數和日干支的關系。查2019年歷,得知公元2019年1月27日的日干支是甲子,而該日正午的儒略日數是2458511。從mod(2458511, 60) = 11,可推出某日正午儒略日數JD正午與日干支的關系是

日干支數 S=1+mod(JD正午-11, 60)。      (1)

此處干支數是指按上面表二所列的干支次序,即1代表甲子、2代表乙丑、3代表丙寅等等。若以T代表天干數及B代表地支數,即T和B是上面表一列出的天干和地支次序,則知道了S后便可用以下公式計算天干數和地支數:

T=1+mod(S-1, 10),   B=1+mod(S-1, 12)。      (2)

干支數S雖然在古代歷法計算中有時有用,但我認為在大多數情況下是不必要的。天干數T和地支數B可以直接用JD正午計算。這可從日天干的周期是十天、日地支周期是十二天、以及上述JD正午=2458511對應的日干支是甲子(T=1、B=1)推出。從mod(2458511, 10) = 1及mod(2458511, 12) = 11得出以下公式:

T=1+mod(JD正午-1,10), B=1+mod(JD正午+1,12)。      (3)

這公式甚為方便,尤其是我們用十進制,天干數T根本不用計算。T基本上就是JD正午的最后一個數位的數,唯一例外是如果該數是0,則T是10。現在看一算例:公元1781年3月13日正午的儒略日數是2371629,因此T=9,天干是壬;B=1+mod(2371630,12)=11,地支是戌,所以日干支是壬戌。

順帶一提,用JD正午也很容易計算星期。星期的周期是七天,已知2019年1月27日是星期日、JD正午=2458511、mod(2458511, 7)=6,由此可推出星期數W和JD正午的關系如下:

W = mod(JD正午+1, 7)      (4)

星期數W=0代表星期日、W=1代表星期一、W=2代表星期二等等。年歷網頁的星期就是用公式(4)計算。

又順帶一提,知道了干支數S后,天干數T和地支數B可用公式(2)輕易計算。反過來,知道天干數T和地支數B后,要求干支數S就要解以下的同余方程:

S ≡ T (mod 10),    S ≡ B (mod 12)。

此處≡符號表示同余。上面公式是說S-T可被10整除、S-B可被12整除。如果不熟悉同余算術,要找出一條算式來表示S也許會有點困難。對于某一特定的T和B,當然可以查表二找到答案。如果認為查表二等于「作弊」,可以用以下公式計算:

先算 k=6T-5B,如果k>0,則 S=k; 如果k≤0,則 S=k+60。也可以證明k>0等同于T≥B,k≤0等同于T<B,而T-B必定是偶數。[1]

以上面算出的壬戌干支為例,T=9、B=11,k=6×9-5×11=-1,所以S=59,正是表二列出壬戌的干支次序。

以上所述的同余算術問題并不難。我沒有正式學過同余算術理論,但仍能輕易求出其解,原因是求解過程中不須要用到如大衍求一術這樣精妙的算法[2]。稍為艱難的算題見于《孫子算經》,即著明的「物不知數」算題:[3]「今有物不知其數,三三數之剩二,五五數之剩三,七七數之剩二。問物幾何?」用現代數學算式表示,就是要求一整數x,使得

x ≡ 2 (mod 3),   x ≡ 3 (mod 5),   x ≡ 2 (mod 7)。

中國古代學者在計算歷法時遇到了不少同余算術問題(尤其是計算上元積年),很可能因此深入研究同余算術,發現了著明的孫子定理,西方稱為「中國剩余定理」。


干 支 紀 時

古時將一日分為十二時辰。用現在通用的時間系統來說,一時辰相當于現在的二小時。 十二時辰正好配十二地支,所以時辰一般只提地支,不理天干。以現時通用的時間 系統來說,子時是晚上十一時至凌晨一時,丑時是凌晨一時至三時,其余可以類推。

十二時辰配上天干后,就有六十時辰(即五日)的周期。日干的周期是十日,所以日干與時干有二對一的對應關系,頗似年干與月干的關系。日干與時干也有類似的對照表,但我認為只須知道日干為甲的子時天干是甲就可以了,其他時干可用同余算術推出。這里以丁日的未時為例,丁是甲之后的第三個天干,未是第八個地支,丁日的未時即從甲日算起的第(3×12 + 8)個時辰,即第四十四個時辰,所以其天干是從甲起往下數四十三個天干,四十三除以十余數是三,甲之后第三個天干是丁,所以丁日未時的時辰干支是丁未。



備 注