历法源于天文,古代天文与历法是一回事。夏、商、周三代处于观象授时时期,直到战国初公元前427年发明《殷历》“甲寅元”(四分历),中国才进入历法时代。“观象授时”语出《尚书·尧典》:“历象日月星辰,敬授民时。”华夏先民观天象的目的是“授时”,这与西方天文学有很大不同。
1.观察太阳的运行规律,古人形成了“日”与“年”的时间概念。太阳东升西落,一个白天一个夜晚合为一日。中国古代最主要纪日方法是干支法,即运用十天干(甲乙丙丁戊己庚辛壬癸)十二地支(子丑寅卯辰巳午未申酉戌亥)组合成六十甲子循环纪日。早在殷商甲骨卜辞中,就有“己巳卜,庚雨”“乙卯卜,翌丙羽”之辞。据可靠资料,公元前720年,春秋时期鲁隐公三年二月己巳日至今近三千年,干支纪日从未间断过,成为世界上迄今所知最长的纪日文字记载。
古人立竿测景(影),日影最长的一天定为冬至日,夜晚最长。日影最短的一天为夏至日,白昼最长,每年春夏秋冬循环一次。《尚书·尧典》载“期三百有六旬有六日”,表明夏商时期古人已确定回归年长度为366日,即从冬至到下一个冬至的时间(称为一“岁”)。至迟到春秋时期,后人更加精确测定回归年长度为365又1/4日。
历史上采用过的纪年方法有王位纪年法、岁星纪年法、太岁纪年法、年号纪年法、干支纪年法等。自汉武帝元鼎元年(公元前116年)到民国(1911年),年号纪年法与干支纪年法一直并用,如1898年戊戌(干支纪年)变法,是光绪二十四年。
2.月相的变化使先民掌握了时间长度“月”。至迟到春秋时期观测出月相从满月(望)到下一个满月平均需要29.53日。12个月约为354日,与回归年365又1/4日相差11日强。每三年差33日多,超过一个月。古人为调配月与回归年的长度,采用了“置闰”的方法,保证月份与季节的相应。春秋时期,天文学家已经掌握了十九年七闰的规律。调配年、月、日的关系,是中国古代历法的主要任务,也是历史上频繁改历的原因。
3.古人观恒星,北极与北斗总是联系在一起,以此定方位、定季节时令。北极星代表正北方向。北斗七星围绕北极星转动。《鹖冠子·环流》所载:“斗柄东指,天下皆春;斗柄南指,天下皆夏;斗柄西指,天下皆秋;斗柄北指,天下皆冬。”古人很早发现四季交替与北斗七星运行有必然联系。
二十八宿在黄道带附近,日月五星穿梭于其间。古人用角度表示二十八星宿的距离,并以此来确定太阳、月亮、五星的位置。《汉书·律历志·距度》所载是春秋时期的天象数据,见下图张氏星历表(见【表二】)外圈二十八宿名称上方的数字。每过一天,二十八宿便向西运行一度。每过一月,二十八宿向西行约三十度。
古人通过“观象授时”,至战国时已形成完整的二十四节气。这是一套农事历,指导农耕生产,每一节气均与二十八宿、北斗的运行、土圭测影长度、各地物候相关联。