这个原始的端午节,用的不是五月五日,而是午月午日,而且是第二个午日。前面将“端午”解释为“第一个五日”或“第一个午日”的说法不攻自破。一个月有29至30天,地支是十二个,所以一个月会有两个或三个午日,其中第二个午日一定在五月十三日至二十四日之间,是正中的午日。“午月的第二个午日”符合“正午”的观念,所以将“端午”解释为“正午”是正确的。
这个日子在汉代宇宙观中有特定意义。之所以选用午月的第二个午日,本质上是在当时的干支纪日历法体系中,以尽可能简便的方式选取一个数术内涵和历法关系都尽可能接近夏至的日期。夏至是天文历法意义上的极阳之日,而地支午则在阴阳五行理论中属极阳,午月的第二个午日是理论模型中的极阳日。以这个日子作为夏至日的替代者,既能做到理论上接近极阳的夏至概念,又能兼顾到历日推算的简便,无疑是一种较合理的设定。这也可以解释为何后世端午与夏至多有纠葛——它们本来就同出一源。
当然,此时端午节远未定型,不排除还有别的择日形式,比如选五月的丙午日或初五日。从现有文献看,端午节逐渐定型为五月五日,大概是在东汉时。从午月午日到五月五日的变化,与历法的变化息息相关。两汉魏晋时期,纪日法发生了重大变化,干支纪日逐渐被淘汰,数字纪日开始兴起,这必然带来选择节日的变化。比如上巳节,本来在三月上旬的巳日,后来变为三月初三。又如腊日,本来是冬至后的某个戌日,后来固定为腊月初八。端午也经历了同样的变化,由取地支午转为取数字五。
为什么会选用五月五日呢?午和五同音是原因之一,当然还有更深层次的缘由。中国传统历法为阴阳合历,纪月纪日用月亮周期,节气则是太阳周期。二十四节气中,序数奇者为“节”,偶者为“气”,如立春为正月节,惊蛰为二月节,芒种为五月节,等等。由于阴阳步躔不一,节气在各月之序数日期中漂移不定。部分地区大概在由干支纪日向序数纪日的转换过程中对节的选取作了简化——一个朔望月取29.5日,一个太阳月取30.5日,两者相差恰好一日,若正月初一日为正月节立春,则二月节恰为二月二,三月节恰为三月三,依次类推,直到九月节为九月九。后面的三个月大概误差太大,就很少有人算了。这样方便好记,也成就了中国的“重节”传统——二月二龙抬头,三月三上巳,七月七乞巧,九月九重阳——五月初五五月节也在这一体系内。从历法意义上说,这个日子本质上对应的是芒种而非夏至。这种节的设置,带有明显的阴阳历相互迁就的色彩,体现了中国传统历法中阴阳调和的思想。奇数的节用重节推算方便,偶数的气却不方便,因此也有其他简化方式——例如中秋取秋分所在之八月的中间日十五日。节、气这些概念,老百姓搞不明白,最后干脆都叫节日。