干支纪月:古代天文学与历法的智慧
在《淮南子·天文训》中,有这样一段描述:“帝张四维,运之以斗。月徙一辰,复反其所。正月指寅,十二月指丑,一岁而匝,终而复始。”这段话揭示了春秋时代已经存在的十二地支纪月法,即月建。月建是根据北斗七星的斗柄指向来命名的,当斗柄指向十二地支中的某一个时,那个月便以该地支来命名。
但是问题又来了,究竟要以什么月作为岁首之月,即是一年中第一个月安排在什么季节,关于岁首之月的确定,历史上有着不同的看法。有观点认为,中国古代的夏、商、周三代曾轮流改正朔,这被称为三正。《尚书大传》记载:“夏以孟春月为正,殷以季冬月为正,周以仲冬月为正。”这意味着夏代以寅月为岁首,商代以丑月为岁首,而周代则以子月为岁首。
在天文学中,我们所说的“月”指的是朔望月,即月球两次合朔间的时间。严格来说,这段时间为29.530589日。一年内有12个朔望月,总共约354.367058日,比一年的365.2422日短了近11天,即每月几乎少1天。随着时间的推移,这种差距会导致月份与季节不同步。
为了解决这一问题,《淮南子·天文训》中提到的斗柄指月的理想状态无法实现,古人引入了闰月的概念。为了调和岁(指连续两次交冬至的时间间隔)与年(指12个朔望月的时间间隔)的不等长问题,古代中国的历法家发现,在19年中增加7个闰月,可以使得19年的总日数与19岁的时间间隔几乎相等。19岁总共6939.60日(即19×365.2422=6939.6018),而19年加7个闰月共6939.69日(即(19×12+7)×29.53059=235×29.53059=6939.6886),两者相差仅0.086日,大约两个多小时。
在现代,我们以建寅为正月,这是继承自夏时期以寅为正月的传统。以丙年为例,正月被称为丙寅月,以此类推,下一个月被称为丁卯月,再下一个月为戊辰月,依此类推。因此,年干与月干的关系是,每年正月的月干向前移动两位。民间的命理学者通常根据年干来确定月干,这种方法被称为五虎遁。