据说,天干地支的发明者是四五千年前上古轩辕时期的大挠氏。
起先,天干仅是用来记日,因为每个月的天数都是以十进位的;地支用来记月,因为一年十二个月,正好用十二地支来相配。可是随之不久,人们感到单用天干记日,每个月里仍然会有三天同一天干,所以便用一个天干和一个地支分别依次搭配起来的办法来记日期,如《尚书·颐命》就有“惟四月哉生魄,王不怿。甲子,王乃洮拱水,相被冕服,凭玉几”的记载,这用现在的话来说,就是四月初,王的身体很不舒服。甲子这一天,王才沐发洗睑,太仆为王穿上礼服,王依在玉几上坐着。后来,干支记日的办法又被渐渐引进到了记年、记月和记时。这样,干支记年、记月、记日、记时的一整套体系就在实践过程中,渐次地形成了。
十天干和十二地支的最小公倍数是六十,所以它们依次从头结合到底一个循环,通称“六十甲子”。“六十甲子”的次第是:
甲子、乙丑、丙寅、丁卯、戊辰、己巳、庚午、辛未、壬申、癸酉、甲戌、乙亥、丙子、丁丑、戊寅、己卯、庚辰、辛巳、壬午、癸未、甲申、乙酉、丙戌、丁亥、戊子、己丑、庚寅、辛卯、壬辰、癸巳、甲午、乙未、丙申、丁酉、戊戌、己亥、庚子、辛丑、壬寅、癸卯、甲辰、乙巳、丙午、丁未、戊申、己酉、庚戌、辛亥、壬子、癸丑、甲寅、乙卯、丙辰、丁巳、戊午、己未、庚申、辛酉、壬戌、癸亥
以上“六十甲子”,每个单位都可按照先后顺序分别代表不同的年、月、日、时。比如以日为例,清代道光二十二年壬寅(1842)农历四月十一日是己亥,那末四月十二日、十三日就可顺次推知为庚子、辛丑……四月十日、九日就可逆次推知为戊戌、丁酉……。这样六十甲子循环往复,周而复始,以至无穷。早在春秋战国时期,历法混乱,夏历、殷历和周历同时并存。三种历法之间的主要区别是每年开头的月建不同。秦始皇统一中国后,曾改用夏历建亥之月的十月为一年的开头。此后直到公元前104年
汉武帝改用太阳历,才正式确定以夏历建寅之月的正月,作为一年的开头。打这以后的二千年间,除了王莽、
魏明帝时一度改用殷历,唐代
武则天和唐肃宗一度改用周历,一般都以夏历的寅月作为一年的起始。
十二时辰在古代的一种通俗叫法。这种俗称,主要是借助一些自然特征和生物特征宋表小的。“鸡鸣”、“人定”,借助于半夜鸡叫和人入夜睡觉的特征。“食时”、“哺时”,借助吃饭时刻表示时间。古人一日两餐,早饭在日出以后,隅中以前,所以称这段时间为“食时”;晚饭在日跌(太阳偏西)以后,日入以前,所以称这段时间为“哺时”。除此之外,其余留下的八个时间俗称,多半以太阳位置为主要特征宋表示的。这里要注意的是对于子时的划分,因为上半时辰在夜半前,所以属上一天,下半时辰在夜半后,所以属下一天。