农历的历月长度是以朔望月为准的,大月30天,小月29天,大月和小月相互弥补,使历月的平均长度接近朔望月。
我国农历定月的方法是“定朔法”,就是规定每月的头一天(初一)必须是朔日。而一个朔望月约是29.5306日,不是整数。这样就和日出日落的“天”凑不齐了。有时候一个朔望月29天,即小月,有时候30天,即大月。这就使得大小月的安排不固定,需要通过严格的月相观测和计算来确定。因此,农历中连续两三个月是大月或是小月的事是常有的,甚至还出现过如1990年九月、十月、十一月、十二月连续四个月是大月的罕见情况。
大小月看似没有规律,但有一个原则是不变的,那就是不断向每个朔望月精确数值调整。所以这个“误差”不会积累。也就是说,闰年按13个朔望月计算应该是383.9天。尽管每月多一天少一天常见,但要在一年中多出一天是很不容易的。因为几个月最后都“扯平”了。所以不能简单以大小月出现概率计算,因为这个不是随机的。这是我国农历让全世界历法专家最折服的地方。别的历法包括公历都有这个问题。
当然,农历的大小月的设置还是有一定规律可循的。因为阴历定月的方法是:用朔望月周期给出,朔所在日为初一,朔望月长约29.53059日,即29天半多一点,因日历必须用整数,所以规定农历大月30天,小月29天。因小月29天,少算了0.53059日,就得把这少算的0.53059日加起来放在下一个月,那下个月就有了30天。往下累加,一年多出0.36708日。三年后,就多出1.0124日,必须在一个小月上加上一天,于是就会出现两个大月,即使加了这一日后,还有0.0124日的零头,又得与0.53059日加起来再往后累加……如此循环不已。