为什么俗语说「十五的月亮十六圆」？
写在前面，水答案的有意思吗？ ----------------------------------正文---------------------------------- 确实满月发生在农历十六日的更多一些。 先说为什么满月不一定发生在农历十五日： 简单的说，月球轨道是个椭圆，不是个正圆，所以朔望月之间的时间不一定是15天整，而是在一定范围内。 下图红点是朔月，绿点是望月，蓝色是地球。 下图红点是朔月，绿点是望月，蓝色是地球。 如果是第一个图，那么就是十六甚至是十七才圆，如果是第二个图，那么就是十五才圆。由于月球轨道是椭圆，所以实际上圆月可能出现在农历十四~十八之间。 根据万年历的数据，统计公历2005-2020年的满月公历日期和农历日期，从2005.1.1到2020.12.31期间共有198个满月，统计满月日期结果如下： 那么，下面来分析一下为什么满月出现在十六的概率比十五高？ 首先，可以确定的是，农历朔月和望月（满月）之间的时间差平均下来确实是15天左右，把前面说的日期范围内的数据，计算朔望月时间差，生成一张图表，可以有下面的图： 上图中，纵轴是朔望月之间的天数（含小数部分），可见整体上是均匀分布的，甚至平均来看小于15天，是14.771791天。 现实确实是十六满月更多，数据出了什么问题呢？ 原因是月初是以公历“天”为单位的，不管朔月出现在这一天的凌晨、中午、下午、半夜，只要朔月在这一天，这一天就是初一，但初一的实际起点可以是24小时以内的任何时间，统计这198个月份可以得到下面这个表，是朔月的实际时间分布： 可见，朔月大概是均匀分布在24小时这个时间段里的，平均值是0.490653天。 满月的计算规则是：满月时间 = 朔月时间 + 朔望月时间差所以，满月时间平均值 = 0.490653天 + 14.771791天 = 15.262444天 这两个值加起来超过15天了，所以满月的平均时间实际上大于15天，也正好符合前面的统计值，下图是满月实际发生的时间（注：这里要加一天才行，因为算的是天数差值）： 因为朔月的起点不是一天24小时的0点，而是均匀分布在24小时以内的，所以即使朔望月之间相差小于15天，但由于平均上多出了一天，那么就会造成有很多满月出现在农历十六。 怎样修改历法才能让满月出现在农历十五日的频率更高？ 如果把农历月份的起点规则改为：如果朔月出现在某日的中午的12:00:00至次日的中午11:59:59之间，则把这一天日期定为月初，那么大部分满月就会出现在农历十五日了。 最后，附上详细数据： 注：数据源主要来自wiki，然后拿星历表进行计算校正，发现wiki上至少有三处错误，星历表计算的结果也有很多分钟上的偏差，但考虑到不影响结论，所以未做校正。