八字干支

古人定義了甲、乙、丙、丁、戊、己、庚、辛、壬、癸等十個文字序列,稱為天干,又定義了子、丒、寅、卯、辰、巳、午、未、申、酉、戌、亥等十二個文字序列,稱為地支。為了計算時方便,我們賦予天干0-9十個代碼,賦予地支0-11十二個代碼。

 

12-1:天干代碼名稱對照表

代碼

0

1

2

3

4

5

6

7

8

9

天干

 

12-2:地支代碼名稱對照表

代碼

0

1

2

3

4

5

6

7

8

9

10

11

地支

 

天干與地支可簡稱干支。利用天干與地支的不同排列可形成60個不同的代名,如下表所示。

12-3:干支代碼名稱對照表

代碼

干支

代碼

干支

代碼

干支

代碼

干支

代碼

干支

0

甲子

12

丙子

24

戊子

36

庚子

48

壬子

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

癸亥

干支的一個循環稱為一甲子。由於干支序列是有順序關係的,我們可以賦予它們代碼,從059,在作計算時使用代碼,算出結果後再對照上表,查出對應的干支名稱。若手邊一時無表可查,亦可由下列方式計算求得。

已知干支代碼,要求干支名,只需將干支代碼除以10,所得的餘數即為天干的代碼;將干支代碼除以12,所得的餘數即為地支的代碼。再將代號分別對應到文字即得。例如代碼為42者,除以10的餘數為2,對應到天干中的第3個文字,即為,除以12的餘數為6,對應到地支的 7個文字,即為

反過來,已知干支名,要求干支代碼,g為天干之代碼,z為地支之代碼,則干支之代碼為

a mod b 表示a除以b取其餘數

例如丁未,天干的代碼為3,地支的代碼為7,則g=3,z=7,代入上面的公式可得干支代碼為43

 

干支可用來表示年,60年一個循環;也可用來表示月,5年一個循環;也可用來表示日,60天一個循環,也可用來表示時辰,5天一個循環。

中國古人就是以年干支、月干支、日干支與時辰干支等八個字來表示日期與時間,所以稱為八字。而一個人出生的日期與時間,就稱為生辰八字,也稱為四柱,即年柱、月柱、日柱、時柱。

八字的機

八字的年干支是以60年一循環。但八字的四柱並不是以十進位,也不是以六十進位,所以60年內的不同八字個數並非。若隨意排列一組八字,則在這60年內不見得會出現。我們可以檢視一下,一年只有12個月而非60個月,所以每個年干支只有五分之一的月干支與之對應。再看每個月約有30天而非60天,所以每個月干支只有二分之一的日干支與之對應。再看每日有12個時辰而非60個時辰,所以每個日干支只有五分之一的時辰干支與之對應。因此60年內的不同八字排列個數約為

另外我們算一下60年內有多少個小時

因一個時辰為兩小時,將上面的值除以二可得60年內有約262975個時辰。此數值與前面算出的60年內不同的八字排列數259200個很接近。

因此,任意排列一組八字,在60年內出現的機率只有

我們檢視一下干支年與干支月之間的關係,發現甲子年內一定是丙寅月到丁丒月,乙丑年內一定是戊寅月到己丒月,依此類推,年干支與月干支之間是有綁定關係的,因此像甲子年戊寅月、乙丑年丁卯月等都是不存在的。存在的年干支與月干支的排列只有種,我們可稱之為有效的年月干支。

日干支與時干支之間也有同樣的關係,甲子日內一定是甲子時到乙亥時,乙丑日內一定是丙子時到丁亥時,依此類推,所以日干支與時干支之間也是有綁定關係的,有許多的排列是不會出現的。存在的日干支與時干支的排列也是只有種,我們可稱之為有效的日時干支。

年月干支的排列是60年一個大循環,在這個循環內的年月干支都是唯一的。日時干支的排列是60天一個大循環,在這個循環內的日時干支也都是唯一的。綜合起來,60年內的每一個八字都是唯一的,不會有重複情況發生。

由於年月干支與日時干支的排列沒有綁定的關係,因此各種可能的排列都會出現,應有種。如果我們稱這種排列為有效的八字,則60年內只會出現其中的一半,約259200,因為一個月只有約30天而非60天,故每個月只有約一半的日干支與之對應。

如果每個月都是剛好30,一年剛好是360,則每一個60年內的八字序列都完全相同,也就是說八字排列的週期就是60,任何一組八字出現後都會於60年後再次出現。可惜實際上每個月(節氣月)的天數不是剛好30,而一個廻歸年的天數不是360天,而是365.24244475,因而連續兩個60年內的八字組合序列無法同步,就錯開了。雖然一個八字出現後,有可能60年後再出現,但也可能要等240年後才又出現。一組有效的八字出現的時間間隔平均約為120年。

八字干支的推算:

年的推算:60年一循環,1924年,1984年,2044年都是甲子年,於是1925年就是乙丑年,1926年就是丙寅年,依此類推。

由於干支年月是以節氣為准,故年首是從立春點開始,約在25日前後。例如陽曆年1984115日就不屬甲子年,而屬癸亥年。

月的推算:5年一循環前面我們提過,年干支與月干支是有綁定關係的,確定了年干支,我們就可確定月干支序列而找出對應的月干支。

民間流傳可幫助記憶的口訣為:

甲己之年丙作首,
乙庚之歲戊為頭,
丙辛歲首尋庚起,
丁壬壬位順行流,
若言戊癸何方發,
甲寅之上好追求。

它的意思是:甲或己年的第一個月干支(自立春點開始)一定是丙寅,乙或庚年的第一個月干支一定是戊寅,丙或辛年的第一個月干支一定是庚寅,丁或壬年的第一個月干支一定是壬寅,戊或癸年的第一個月干支一定是甲寅。

譬如19885218時,其年干支為戊辰,其第一個月干支應為甲寅,每年的第一個月干支是從立春點開始,約在24日前後,因此,521日應在甲寅後的第三個節氣月即丁巳月內。不過這種以手推算的方式,在日期接近節氣點時就很難精確掌握。

日的推算:60天一循環,我們必須先有一個已知干支的參考日,算出指定日期與參考日的日數差,加上參考日的日干支代碼,將之除以60取其餘數,就可推出指定日干支。在作這種計算前須先瞭解哪些年是閏年。現代所用的陽曆為格里曆,它是依據4年一閏,百年不閏,400年又閏之原則,1844可被4整除,故為閏年。1900年可被4整除,但亦可被100整除,故不為閏年。2000年可被4整除,亦可被100整除,但又可被400整除,故為閏年。

例如已知1984年的11日干支為甲午,要求算19885218時的日干支,因1984年為閏年,1985年、1986年、1987年為平年,1988年為閏年,其2月有29天。因此,從參考日到指定日的總日數366-1+365*3+31+29+31+30+21=1602。甲午之代碼為30,則(1602+30mod 60 = 12,查表可得12為丙子之代碼,故丙子即指定日之干支。

1-41900年至2039年每年11日的日干支表,查此表來求算日干支就只要計算當年內的日數差即可。

 

12-4:陽曆年11日之日干支表(1900~2039)

1900

甲戌

1920

戊午

1940

癸卯

1960

戊子

1980

癸酉

2000

戊午

2020

癸卯

1901

己卯

1921

甲子

1941

己酉

1961

甲午

1981

己卯

2001

甲子

2021

己酉

1902

甲申

1922

己巳

1942

甲寅

1962

己亥

1982

甲申

2002

己巳

2022

甲寅

1903

己丒

1923

甲戌

1943

己未

1963

甲辰

1983

己丒

2003

甲戌

2023

己未

1904

甲午

1924

己卯

1944

甲子

1964

己酉

1984

甲午

2004

己卯

2024

甲子

1905

庚子

1925

乙酉

1945

庚午

1965

乙卯

1985

庚子

2005

乙酉

2025

庚午

1906

乙巳

1926

庚寅

1946

乙亥

1966

庚申

1986

乙巳

2006

庚寅

2026

乙亥

1907

庚戌

1927

乙未

1947

庚辰

1967

乙丑

1987

庚戌

2007

乙未

2027

庚辰

1908

乙卯

1928

庚子

1948

乙酉

1968

庚午

1988

乙卯

2008

庚子

2028

乙酉

1909

辛酉

1929

丙午

1949

辛卯

1969

丙子

1989

辛酉

2009

丙午

2029

辛卯

1910

丙寅

1930

辛亥

1950

丙申

1970

辛巳

1990

丙寅

2010

辛亥

2030

丙申

1911

辛未

1931

丙辰

1951

辛丒

1971

丙戌

1991

辛未

2011

丙辰

2031

辛丒

1912

丙子

1932

辛酉

1952

丙午

1972

辛卯

1992

丙子

2012

辛酉

2032

丙午

1913

壬午

1933

丁卯

1953

壬子

1973

丁酉

1993

壬午

2013

丁卯

2033

壬子

1914

丁亥

1934

壬申

1954

丁巳

1974

壬寅

1994

丁亥

2014

壬申

2034

丁巳

1915

壬辰

1935

丁丒

1955

壬戌

1975

丁未

1995

壬辰

2015

丁丒

2035

壬戌

1916

丁酉

1936

壬午

1956

丁卯

1976

壬子

1996

丁酉

2016

壬午

2036

丁卯

1917

癸卯

1937

戊子

1957

癸酉

1977

戊午

1997

癸卯

2017

戊子

2037

癸酉

1918

戊申

1938

癸巳

1958

戊寅

1978

癸亥

1998

戊申

2018

癸巳

2038

戊寅

1919

癸丒

1939

戊戌

1959

癸未

1979

戊辰

1999

癸丒

2019

戊戌

2039

癸未

 

時辰的推算:5天一循環,前面已提過日干支與時干支有綁定的關係,知道日干支就可知道這一日的時干支的序列。

民間流傳可幫助記憶的口訣為:

甲己還加甲,乙庚丙作初,丙辛從戊起,丁壬庚子屬,戊癸何方發,壬子是真途。

它的意思是甲己日的第一個時辰名一定是甲子,乙庚日的第一個時辰名一定是丙子,丙辛日的第一個時辰名一定是戊子,丁壬日的第一個時辰名一定是庚子,戊癸日的第一個時辰名一定是壬子,

每日的第一個時辰,即子時,不是從0時開始,而是從前一日的23時起至當日的1時止,所以,八字的日干支也不是從0時開始,而是從前一日的23時起,至當日的23時止。

12-5:時辰時間對照表

時辰

時間

23-1

1-3

3-5

5-7

7-9

9-11

11-13

13-15

15-17

17-19

19-21

21-23

 

前面的例子中,我們已求出19885218時的日干支為丙子,故其第一個時辰干支應為戊子,而8時屬辰時,故可推知時辰干支為壬辰

八字干支的應用:

除了算命先生之外,現代的人已很少會用八字來記他自己的生日或重要事件,民國成立的時刻就是一個分水嶺。在清朝末年時的許多事件,如戊戌政變,甲午戰爭,庚子賠款,辛亥革命等,都是以干支為事件命名。但民國成立後的許多事件,如五四運動,五三慘案,九一八事變,八七水災,九二一大地震,五一二大地震等,都是以日期為事件命名。

雖然現代的人已不用干支來記日、時,但在考證歷史文獻時卻是用得到的。由於干支記年、月、日、時辰是連續的,自古至今不曾斷過,也不曾變過,所以只要是在週期60的範圍內,都是可以精確推算的。由於中國古代的陰曆置月方式與現在我們所用的置月方式不同,所以純以陰曆記載的日期來轉換為格里曆很難準確。但若輔以干支的記載,就很容易判斷了。