尹灣漢墓歷譜
歷法的主要功能之一是安排歷日。世界上不同文明創造了多種多樣的歷法,其中有的是純陰歷,根據朔望月安排歷日;有的是純陽歷,根據太陽的回歸年;還有其他形式的歷法。中國古代歷法為陰陽合歷,即把朔望月和基于太陽年而劃分的節氣結合起來考慮歷日安排。
這種陰陽合歷的歷法體系至殷商時期就已初見,至漢代歷法已有定型的文本并流傳至今。
由于一個太陽年的長度約為365.2422日,一個朔望月的長度約為29.5306日,兩者之間沒有整數倍的關系,12個朔望月的長度約為354天,較太陽年長少11至12天,因而,每隔幾個包含12個朔望月的年份就要安排一個包含13個朔望月的年份,多出來的這個月成為閏月。春秋時期,閏月的安排還不規則,一般安排在年末;漢代歷法開始采用無中置閏法,即以沒有中氣(古代太陽歷與陰歷搭配產生二十四節氣,基本每月兩氣,月初的為節氣,月中以后的叫中氣)的那個月份為閏月,每積累32至33個朔望月將出現一次無中氣月,此月為閏月,這樣月份與中氣相對固定。
由于地球繞太陽公轉的軌道不是正圓形,實際上相鄰兩個節氣之間的時間間隔并非完全相同。以平均長度計算的節氣稱為平氣,而以太陽的真正黃經位置計算的節氣稱為定氣。與此類似,朔也存在著平朔和定朔的區別。唐初改平朔為定朔,根據日月同經的時刻確定朔望月的初日,節氣依然為平氣。使用定朔平氣注歷對傳統無中氣置閏規則影響不大。清代采用西洋歷法,官修歷書改平氣為定氣、定朔。采用定氣注歷后,在太陽視運動較快的季節相鄰兩個中氣的時間間隔就會短于一個朔望月的長度,由此可能出現一個朔望月中包含兩個中氣的情況,這樣在其前或其后的月份雖無中氣卻不是閏月。故此,清代官修歲次歷書中有多次無中氣不置閏的安排。現代的農歷就是沿襲清代定朔定氣計算歷日。