我們知道陰曆是根據月亮的圓缺週期即朔望月、陽曆是根據太陽的視運動週期即迴歸年來制定的。顧名思義,陰陽曆就既不是全用陰曆,也不是全用陽曆,而是兼顧這兩種運動來制定的。我國目前除使用公曆外,根據農業生產等方面的需要,仍使用這種陰陽曆,也叫農曆。
陰陽曆是如何規定歷年和歷月的呢?它是把月相變化一週作為一月,這一點和陰曆完全相同,所以也有人把它就陰曆。其實它和陰曆是不同的,不同的地方是陰陽曆並不是固定以12個月為一年,而是用設定閏月的辦法使得歷年的平均長度等於迴歸年。所以一年中有時是12個月,有時是13個月。為了保持名義上一年為12個月的習慣,插入的一個月稱為閏月,如閏三月、閏五月等等。因此陰陽曆的優點在於陰、陽二歷兼顧,它可以使農曆中任何歷月的每一日起都有月相上的意義,而歷年的平均長度與迴歸年接近,保持了歷年中的春、夏、秋、冬與實際的季節相一致。
我們知道迴歸年和朔望月是兩個不能相合的週期,因為它們不能互相除盡,那麼應該怎樣設定閏月才能使歷年的平均長度與迴歸年一直呢?我國古代天文學家經過長期的研究,這個問題解決得相當成功。
前面講過,12個朔望月為354.3672天(29.5306×12=354.3672天),和迴歸年比較起來相差約11天,過三年後就相差30多天。這樣過三年後就得加一個閏月來消除這種誤差,所以在閏年時,一年裡就得有13個月了。如果每過三年增加一個閏月,仍然還多幾天。要知道,加入閏月後剩下的天數也是一個很客觀的數目,逐年累積起來,季節又會錯亂。早在春秋時代,我國天文學家發現如果在19個陰曆年中插入7個閏月的話,便和19個迴歸年幾乎相等,也就是說在19年中應該安排12個平年(每年12個所望月),7個閏年(每年13個朔望月),共計235個朔望月。請看計算:
1個迴歸年=365.2422天
19個迴歸年=365.2422天×19=6939.60天
1個朔望月=29.5306天
235個朔望月=29.5306天×235=6939.69天
可見19個迴歸年的天數和235個朔望月的天數幾乎相等,相差只有兩小時9分36秒合0.09天。
那麼到底在哪一年的哪一月設定閏月呢?這和二十四節氣有關,基本原則是“中氣定月,無中置閏”。二十四節氣分為十二個節氣、十二個中氣,自冬至開始,逢單數為節氣,逢雙數為中氣。其中十二個中氣為農曆12個月的標誌,這在曆法中稱為“中氣定月序”,如雨水是正月的中氣,春風是二月的中氣等等,不能搞亂。我們知道,每兩個中氣之間的平均天數大約為30.5天,而一個農曆月的平均長度約為29.5天,這就是說可以在某一個農曆月中不出現中氣,或者說應該是這個月的中氣移到了下一個月,於是陰陽曆就規定,凡沒有中氣的那個月就定為上一個月的閏月,不算入正常月序之內,天數與上月相同。
甘肅民間有個題目為《三年等了個閏臘月》的故事流傳甚廣。故事的題目涉及到陰陽曆的閏月在12個歷月中的分佈情況。這個問題比較複雜,簡單地講,冬天時,地球位於近日點,公轉速度快,兩個中氣之間的天數只有28天多一點,比一個陰曆月短,不會出現無中氣的月份,自然就不會有閏月了,所以陰陽曆的正月、臘月不可能出現閏月,三年等了個閏臘月自然是不可能的。夏天的情況恰恰相反,閏月出現的機會較多,特別是四到七月。