这个问题可以不讲那么多的历法理论。毕竟古代数学不普及,历法的解释没那么通俗。
农历年中,闰月是个大问题,因为农历月天数少(平均29.53天),12个月之和与太阳年的计算偏差比较大,所以就得用闰月来找补。农历中闰月比较多,大致是19年中有7个左右。但是古人发明了个置闰的办法,就是让闰月还使用本月的干支(如今年的四月是辛巳月,闰四月还是辛巳月。要再通俗一点讲,大致与汽车带了个拖挂相类似,还叫同一辆车)。农历月是纯阴历,天数少,本月加闰月超不过60天,不会超出60甲子,不会出现同一月内日子重名的现象。仍以前面的闰四月为例,初一是丙申日,60甲子第33顺位;闰四月廿九为甲午日,第31顺位,同一月不会重号。这样一来,不管有没有闰月,每个农历年都用十二个干支,5年刚好60个,60甲子循环一遍,10年就循环两遍。注意,重点来了,年天干(仅仅是天干!)可是10年才完成一个循环,所以就有了逢甲的年份和逢己的年龄月干支完全重复的现象。
最早的时候,古人以冬至所在月为一年的第一个月,所以冬至所在月为子月,大小寒所在月为丑月,立春所在月为寅月……依此类推,立冬所在月为亥月。可是,注意第二个重点来了,后来有个牛人,大约是汉武帝吧,将寅月改为一年的第一个月,但是子丑寅卯的顺序已经不好动了,于是就有了寅月为正月的“错位”,“年上起月”的口诀从正月开始就是这么来的。