寒食·算术

今天做计算的时候突然想到的一个问题:

  1. 传统上,寒食是冬至后105天,在 Excel 里算了一下,所以寒食应该是今天 4月5日;
  2. 传统上,寒食在清明前一天或者两天;
  3. 今年清明是 4月4 日;

所以就有了矛盾,今年的寒食在清明之后。白天没功夫儿细想,现在才想明白其中缘由:古代用平气,现在(从清代开始)用定气,所以定气导致清明节离冬至的距离缩短,以至于清明和寒食的时间错位。

中国古代的历法是阴阳历,一年的长度大约等于一个回归年。在清代以前,节气是以冬至为起点、二十四等分回归年来确定的。所以清明在冬至后 365.25/24*7 = 106.53 天,根据冬至的具体时刻,这个数字折合成天数,可以是冬至后106天或者107天,寒食在冬至后105天,所以正好是清明前1天或者2天。同时因为12个朔望月的长度短于一个回归年的长度,所以使用平气,也可以确定闰月,凡是没有中气的月份就是上个月的闰月,这样一来差不多十九年有七闰,协调了朔望月与回归年之间的矛盾。

南北朝的时候,古人发现太阳的视运动不均匀(地球的轨道是椭圆的),因此隋代的刘焯在《皇极历》里把周天二十四等分,太阳每行 360/24 = 15 度,就是一个节气,这样得到的节气是定气,两个节气之间相隔的日子是不等的。但是因为定气一般都用在历法的计算中,民间一直用等分回归年的平气,所以寒食始终在清明前一天或者两天。

清初废明代《大统历》,使用《时宪历》,在民用历法中也用定气,所以自清初起,寒食与清明的位置就颠倒了。计算了最近十几年清明和冬至的精确时间差,平均是 104.1537 天,最大104.1646天,最小 104.1458 天,所以自清初开始,寒食要么和清明同一天,要么比清明晚一天:)

Blog分类: