在中國古代的曆法中,甲、乙、丙、丁、戊、己、庚、辛、壬、癸被稱為“十天干”,子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥叫作“十二地支”。兩者按固定的順序互相配合,組成了干支紀法。從殷墟出土的甲骨文來看,天干地支在我國古代主要用於紀日,此外還曾用來紀月、紀年、紀時等。那麼,干支紀法的發明者究竟是誰呢?
雖然有以下一些說法來考證干支的起源,但是究竟是誰發明?最早出現於何時?始終都是一個謎。
大約在戰國末年,依據各國史官長期積累下來的材料編成的史書《世本》說:“容成作歷,大橈作甲子”,“二人皆黃帝之臣,蓋自黃帝以來,始用甲子紀日,每六十日而甲子一周”。看來干支是大撓創製的,大撓“采五行之情,占斗機所建,始作甲乙以名日,謂之干;作子丑以名月,謂之枝,有事於天則用日,有事於地則用月,陰陽之別,故有枝幹名也。”
郭沫若在《甲骨文字研究·釋干支》中認為,以往人們對干支的解釋,都是望文生義的臆測,“十天干”純屬十進位記數法的自然發生,其中多半是殷人所創製。至於“十二地支”,起源於古巴比倫,在比較中國古代的十二時辰和古巴比倫的十二宮後,指出中國古代的十二辰和十二地支,都是從古巴比倫的黃道十二宮演變而來。其傳入中國的途徑,可作大膽推測,也許商民族“本自西北遠來,來時即挾有由巴比倫所傳授之星歷知識,入中土後而沿用之”,或許“商室本發源於東方,其星歷知識乃由西來之商賈或牧民所輸入”。
一些學者從我國上古的夏代帝王世系和商代湯王以下所有帝王的名字中,探究十天干中的字已被用於名號這一特有現象。為駁干支外來說,陳遵媯在《中國天文學史》中指出,“在四千多年前的夏代,可能已有干支產生了”。鄭文光在所著《中國天文學源流》一書中認為,十天幹起源於我國古代伏羲和“生十日”的神話傳說,是十進位法概念在紀時中的反映,應當產生於漁獵時代的原始社會;“十二地支”則由常羲“生月十有二”的神話傳說演變而來,產生於殷商之前,後逐漸演變為十二辰。所以,鄭文光推斷:“十二支宜乎是夏人的創作。”杜石然等則在編著的《中國科學技術史稿》一書中,主張夏代已有十天干紀日法,商代在夏代天干紀日的基礎上,進一步使用干支紀法,從而把十天干和十二地支配合在一起形成六十循環的紀日法。