10個天干和12個地支互相組合,其最小公倍數就是60。因此六十個干支組合,便稱為六十甲子,又稱六十花甲,主要用于紀年、紀月、紀日、紀時。這種獨特的干支歷法,就是黃歷。由于古人運用六十甲子紀年,其后也演變出六十太歲星君,每年均由一位星君值年。
六十甲子的組合原則
古人以十天干和十二地支,按其陰陽所屬,以陽干配陽支,陰干配陰支,互相組合成為六十甲子。其法如下
天干從甲開始,順序排列。當十個天干都排完之后,就回到甲重新排一次。
地支從子開始,順序排列。當十二個地支都排完之后,就回到子重新排一次。
甲乙丙丁戊己庚辛壬癸甲乙丙丁
子丑寅卯辰巳午未申酉戌亥子丑
如是者,十個天干經過六次重復排列,同時十二個地支經過五次重復排列之后,天干和地支都會一起回到甲和子而重新開始。因此,干支的一個循環里面,就有六十個不同組合。這就是六十甲子,或稱六十花甲。人們常說花甲老翁,就是指已經滿了六十歲的人。
黃歷的歷法
六十甲子出現以后,最先被應用到的是紀日。根據甲骨文的考古資料當中,從殷商時代起,已經有完整的六十甲子周期表,并有用甲子記錄日期和事件的證明。其次,在《史記》對武王伐糾的記錄中,亦有「甲子日紂兵敗」的記錄。這說明從殷商時代起,六十甲子的確被用于紀日。而連續紀日的記錄,有學者認為不遲于春秋魯隱公三年二月己巳日,亦有學者認為可上推至周幽王元年十月辛卯日開始。先不管那個說法是正確,但可以肯定的是,運用六十甲子而連續紀日的記錄,至少超過2600年的歷史。
至于運用六十甲子紀月,則始于西漢太初元年所頒布的太初歷。而運用六十甲子紀年,有資籵顯示在太初歷頒布前已經在民間使用。但作為朝庭所頒布的歷法,則始于東漢漢章帝元和二年的四分歷。
六十甲子紀時的出現時間,已無可考據。然而根據《周脾算經》,就已經有把一日分成十二個時辰的描述。雖然這并非完整的六十甲子紀時的記錄,然而卻可以證實六十甲子紀時必定出現在《周脾算經》的成書年代至到唐朝李虛中以四柱論命的時期之間。
黃歷的排列方法
我們已經知道古人運用「六十甲子」去記錄年份、月份、日子及時辰。以1984年是甲子年為例,到了1985年就是乙丑年,如此類推。基于「六十甲子」會重復使用,所以六十年就有一個循環,亦即2044年就是下一個甲子年。如下圖所示:
除了年份是如此排列之外,月、日、時,也是同樣的道理。而中國的一個時辰,相等如現代的兩個小時。因此,黃歷就會每兩個小時出現一次變化,變化原則都是按照六十甲子的次序,一直順排。
舉例說:2013年1月1日11:00是:
丙丁壬壬
午卯子辰
兩個小時之后,亦即2013年1月1日13:00就會變成:
丁丁壬壬
未卯子辰
再下一個時辰15:00就會變成:
戊丁壬壬
申卯子辰
同樣道理,如果2013年1月1日是丁卯日,1月2日就會變成戊辰日。一直順排到2月,月柱就會從壬子月變成癸丑月了。
五虎遁月
不論紀年、紀月、紀日、紀時,六十甲子都是以六十數為一個循環單位。因此,紀年則六十年循環一次,紀月則六十月相等如五年循環一次;同理,紀日為六十日一個循環,而紀時則是六十時即五日為一個循環。
由于紀月的六十甲子,每五年會重復一個循環,因此第一年甲年,和第六年己年,當中的月份干支排列是一樣的;而第二年乙年,和第七年庚年,當中的月份干支排列也是一樣的。詳列如下:
由此可以知道,逢甲年和己年,寅月的天干必定是丙;逢乙年和庚年,寅月的天干必定是戊。如此類推。因此,古人為了方便記憶,就造了一首歌訣,以寅的生肖屬虎,便稱為五虎遁:
甲己之年丙作首
乙庚之歲戊為頭
丙辛之歲尋庚上
丁壬壬位順行流
若言戊癸何方發
甲寅之上好追求
熟記此歌訣,即可以憑年干推出當年寅月的天干,并以寅月天干順數此所需查考的月份,即可求得當月的干支。
五鼠遁時
日時的關系和年月的關系相同,月份的干支逢六十月即五年為一個偱環,而時辰的干支則逢六十時即五日為一個循環。而當中的分別在于,年以寅月為首,日則以子時為首。詳列如下:
從上可知,逢甲日和己日,子時的天干都是甲;逢乙日和庚日,子時的天干都是丙。為此,古人亦造了五鼠遁歌訣以便記憶,取其子時屬鼠之義:
甲己還加甲
乙庚丙作初
丙辛從戊起
丁壬庚子居
戊癸何方發
壬子是真途
八字的組合
六十甲子之中,有甲子、甲寅、甲辰、甲午、甲申、甲戌,這稱為「六甲」。只要年柱天干相同,當年的月份干支也會一樣。因此,在「六甲」之中,年月柱的組合便是6 x 12 = 72個。而天干總共有10個,因此所有年柱和月柱的組合便是72 x 10 = 720個。至于日柱和時柱,由于五虎遁和五鼠遁的結構都一樣,所以日柱和時柱的所有組合亦是720個。
從以上公式可以得知,假若不理會陽男陰女順行、陰男陽女逆行的排大運方式,八字的所有組合就是720 x 720 = 518400個。如果計算大運的順逆,就把518400 x 2 = 1036800。
在宋代之前,并未有早夜子之分,這從五鼠遁歌訣里已經可以知道。現代人受了西方科學的影響,以正子時作為換日點,于是出現了13個時辰。因此如果根據這個結構,以上的算式還須要再修正一下。