說到十二生肖的來歷,要從天干地支和二十八宿說起。早在六千年前,我國古代人民就透過對天象的觀察而發現太陽和月亮一年要會合十二次,每次會合的位置不同,所以古人將太陽執行一圈的軌道分為十二等份,即十二宮,以“子醜寅卯”等代表一年的十二個月,週而復始,並以“甲乙丙丁”等與“子醜寅卯”等相配使用,用以紀年、紀日。這便是“天干地支”的由來。
天干地支在古代被人們用在很多地方,人們用天干和地支的組合來計年,由於十天干和十二地支的最小公倍數是六十,所以天干地支計年每六十年一個輪迴,稱為六十花甲子。地支也被古人用來計方位,子為正北,卯為正東,午為正南,酉為正西。當二十八宿中的虛日鼠執行到正北即子位時,其他11個方位上的星宿分別為醜位上是牛金牛,寅位上是尾火虎,卯位上是房日兔,辰位上是亢金龍,巳位上是翼火蛇,午位上是星日馬,未位上是鬼金羊,申位上是觜火猴,酉位上是卯日雞,戌位上是婁金狗,亥位上是室火豬。
這裡先說一下二十八宿的命名方法,二十八宿名稱都是由三個字組成的,第一個字為宿名,第二個字在每一相中的七宿分別冠以日月五行,最後一個字是象徵動物。現在再回頭看看虛日鼠執行到子位時十二地支方位上的十二宿的象徵動物。
我們會發現,他們正好是十二生肖中的十二個動物。再加上他們所處的地支方位,就有了我們常說的“子鼠丑牛寅虎卯兔辰龍巳蛇午馬未羊申猴酉雞戌狗亥豬”
十二生肖源於何時,今已難於細考。長期以來,不少人將《論衡》視為最早記載十二生肖的文獻。《論衡》是東漢唯物主義思想家王充的名著。《論衡·物勢》載:“寅,木也,其禽,虎也。戌,土也,其禽,犬也。午,馬也。子,鼠也。酉,雞也。卯,兔也。亥,豕也。未,羊也。醜,牛也。巳,蛇也。申,猴也。”以上引文,只有十一種生肖,所缺者為龍。該書《言毒篇》又說:“辰為龍,巳為蛇,辰、巳之位在東南。”這樣,十二生肖便齊全了,十二地支與十二生肖的配屬如此完整,且與現今相同。