传说上古的黄帝创造了历法,至迟在商代时期,中国已经有了详尽的天象记录以及历法。除了指导农业生产以外,中国古代许多宗教性节日都必须根据天象制定,御用天文学家必须不断地观测天象,以修正历法,安排节日。
至迟从商代开始,中国人就使用着综合太阳和月球运行规律的阴阳历,也就是今天所说的农历。农历的月份长度以朔望月为标准,为了契合地球公转和四季变化,每隔几年,就需要插入闰月进行调整。从甲骨文中,我们得知,商人将一年划分为12月,闰年13月,大月30天,小月29天,已经和今天的农历很接近了。
和今天不同,中国古人最初是通过黄昏时分星宿的出没来确定四季的。《尚书.尧典》中以鸟、火、虚、昴四宿为仲春、仲夏、仲秋、仲冬黄昏时刻的中星。春秋时期,古人发明了土圭,用来观测日影,确定冬至和夏至。当时农历已经发展得非常完备,人们采用19年7闰的调整周期,这要比古希腊的冬周期早了一百多年。春秋时期人们已经知道两分两至(春分、秋分、夏至、冬至)的存在,到了秦汉时期,又逐渐确定了其他节气,这就是著名的二十四节气。
汉代以后,中国的天文学研究主要局限于历法方面。古代历法除了需要确定年月,还要推算日月食和行星的运动。为了使历法符合天象,就需要不断进行观测,并制定新的历法。
汉武帝时期由落下、邓平等制定太初历,是中国最早根据实际观测而制定的历法,也是保存下来的第一部完整历法。太初历囊括了二十四节气、五星、交食周期、闰法、朔晦等,已经具备了后世历法的各项主要内容。太初历沿用了19年7闰的置闰法,以.25天为回归年(指太阳中心连续两次经过春分点所需的时间)的长度,以29又43/81(29.)天为朔望月周期,已经和今日的观测数据非常接近。之后由刘歆编制的三统历,进一步完善了日月食和五星运行周期,成为后世历法的规范。
在三统历中,为了推算日、月和五星的运动,刘歆设置了一个理想起点(历元)作为运算基准,从历元往上推,得出一个日月合璧,五星连珠的时刻,这个时刻就称为上元。刘歆将这一年的大周期称为太极上元,从上元到年份的年数称积年,通称上元积年。
汉代之后,随着计算手段和观测方式的进步,历法精确度也不断提高。南宋时期杨忠辅的统天历已经以.天为回归年长度,和今日通行的公历回归年长度相同(但早了三百多年),统天历还废除了繁杂的上元积年计算,提出了回归年长度有变化的概念,不过这些改革,直到元代郭守敬的授时历才得以实施。
近代之前,农历通行于东亚各国。元代以前,中国的历法主要还是以中国传统天文理论为基础。元代时,随着和中东的交流,伊斯兰世界的回历传入中国,并对之后的历法产生了一定影响。明代中后期,随着欧洲传教士的到来,以《崇祯历书》为标志,中国传统天文学的计算方式逐渐从代数方法转为希腊式的几何学方法。不过在形式上,依旧延续着传统的阴阳历体系。
太平天国时期,使用过一种与众不同的太阳历,称天历。天历由冯云山主导创立,以节气为基本准则,1年12个月,大月31天,小月30天,共天。天历的月份根据节气制定,不计朔望,不分吉凶,不设闰月和闰日,为了调整1年的长度,每40年设置一“斡”,除了“斡”年以外,其他年份的日数、月数,季数都很整齐,非常容易记忆和统计。尽管天历有着不少值得称道之处,不过随着太平天国的失败,这种历法实行不到20年,就淹没于历史长河之中。
至于纪年方式,中国古代先后使用过岁星和干支纪年。
岁星,是木星的别称,古人以12年(实际为11.86年)作为木星运行的周期。使用岁星作为纪年标准,可以避免各国年号差别带来的混乱。岁星纪年起源于周代,流行于战国到秦汉之交,由于和木星实际运行周期的差异,累积久了,就不符合实际天象了。
干支纪年萌芽于西汉,通行于东汉之后。干支是天干和地支的总称,两相搭配,正好构成了60年1循环的周期。汉章帝元和二年,政府下令在全国推行干支纪年,并一直延续至今。结合流行于干支之前的岁星纪年,就可以得出从东周至今的历史年表。
清末,为了弘扬传统,塑造民族认同,并表达与清廷势不两立的态度。经学家刘师培提出以黄帝诞生为纪年起点,革命党人采纳了这种意见,并以邵雍和皇甫谧推算的黄帝诞生之年(公元前年)为起点。武昌起义后,黄帝纪元推行至各省,民国时,则并行使用着黄帝纪元和民国纪元。
除了农历,中国各地的少数民族也有自己独特的历法。
藏历生肖对照表,陈遵妫《中国天文学史雪域高原的藏历起源于文成公主传过去的农历。藏历也使用干支纪年,但以五行代替了十天干,以十二生肖代替了十二地支。-年间,从印度传来一种历法,被称为星历。此后,藏族历史文献采用星历纪年,以60年为1个世纪。总体来说,藏历是与农历相似的阴阳历,但采用了印度传来的星历计算节气。使用28或27星宿计算吉凶,采用七曜命名的星期。藏族人把1天分为60水时,1水时60水雨,1水雨6息(相当于4秒),以连续的两次日出为1日。
泼水节云南的傣族使用傣历,其历史可追溯至西汉的太初历,属于阴阳历。傣历采用和古代中国相同的19年7闰法,并将闰月设在9月。傣历纪元始于年的3月22日,他们的新年大约相当于公历的4月,每到新年那天,就会举行盛大的泼水节。傣历使用干支纪日法和七曜一周法,他们把一天分为4个部分,每个部分3个段落,共12时辰,或将1昼夜分为60时度,每个时度相当于24分钟。
火把节每年夏至前后,是各彝语族群的火把节,不同的火把节传说大同小异,都讲述着人类不畏强权,勇斗神明的故事。
西南的彝族使用着几种历法。除了类似农历的阴阳历外,据人类学家刘尧汉考证,云南宁县彝族使用着一种以月经周期28天为1个月,1年13月,共天的历法。另有10月、12月和18月的太阳历,三种太阳历1月分别有20、30和36天,年末的5天为过年日,逢闰年则加上1个闰日。18月历与中美洲的古代历法非常相似,这也引起了不少学者的