中华民族是一个以农耕为主的民族,农耕与时令季节有着密切的联系。中国古人进行天文观测的一个重要目的就是制定历法。《尚书·尧典》中就有:“乃命羲和,钦若昊天,历象日月星辰,敬授民时。”并且已经知道一年“期三百有六旬有六日,以闰月定四时,成岁。”《大戴礼记·夏小正》一篇被认为是出于夏代,记录了一年中十二个月的天象和物候,以及相应的生产生活活动。连孔子也说要“行夏之时”。而夏人以正月为岁首。不过这些都无法获得考古的证实。
而在殷商时期的甲骨文中则留下了大量天文观测的记录。商人也已经有了历法,从甲骨文中可以知道,商人已经有了干支。商人也已经懂得了设置大小月,小月29天,大月30天或31天。商代也有了闰月,不过置闰时间并不固定,有年终置闰和年中置闰。商人对于季节的认识尚不完全,可能只知道有春秋两季。对于一天之内的不同时间,商人也已经有了专名。从早到晚分别是:旦、大采、中日、昃、小食、小采。传世文献认为殷商时期的历法以十二月为岁首,在甲骨文中也找不到支撑这一说法的依据。
西周时期的天文历法已经达到很高的水平。在金文中留下了大量关于月相的记录,分别被叫做:初吉、既生霸、既望、既死霸等。周人的历法也已经很完善,已经有了朔望的观念。《诗经·豳风·七月》就记载了周人所观测到的一年中各个月里的物候以及相应的生产活动。而且从中可以知道,周人的历法是以十一月为岁首。
到了春秋战国时期,已有立春、春分、立夏、夏至、立秋、秋分、立冬、冬至等节气,并能准确的推算出日南至也就是冬至的日期,《左传》记载了两次冬至日,一次在公元前655年,一次在公元前522年,其间记闰月48次,失闰一次,共计应有闰月49次,此即19年7闰法,显示春秋时期的历法已比前代历法准确。
秦朝及汉初,采用的是秦朝的《颛顼历》,以十月为岁首。但《颛顼历》并不精确,到汉武帝时已出现了“朔晦月见,弦望满亏”的错乱现象。于是汉武帝令司马迁、落下闳、邓平等改《颛顼历》而作《太初历》,以正月为岁首,采用有利于农时的二十四节气,在无中气的月份,插入闰月,调整了太阳周天与阴历纪月不相合的矛盾,使朔望晦弦较为正确,是我国历法上一个划时代的进步。
随着天文学的不断发展,人们在历法上也日求精密。汉成帝时,刘歆又作《三统历》,规定一年是365又835/1539日,一月是29又43/81日,19年7个闰月,这是当时最精密的历法。到东汉时期,出现了新的历法《乾象历》,它是东汉后期刘洪审定。提出朔望月和回归年长度两值偏大的问题,并确立了近点月概念和它的长度计算方法。对中国古代历法体系最后形成贡献很大,三国时期的吴国所采用的历法即为《乾象历》。
魏晋南北朝时期,天文历法的进步首先体现在岁差的发现。东晋时虞喜首先发现太阳运转到冬至点的位置每年并不相同,这个差就是“岁差”。岁差的发现区分了太阳周期的恒星年与回归年,这对于历法的推算非常重要。虞喜推算出,岁差为大约每五十年向西移动一度。刘宋时期的何承天则推算为大约一百年移动一度。祖冲之最先把岁差应用于历法的制定,他所制定的《大明历》将一年定为365.2428148日,仅比现代测定值相差46秒。
隋朝在天文历法方面取得一定成就的有刘焯、丹元子、耿询、肖吉等。刘焯根据日行盈缩的规律,创立盈缩躔差法,制定《皇极历》,测定岁差为75年差1度,与现代测定的76年差1度的准确值非常接近。唐代中央设太史局,专门掌管天文历法工作。太史局的官员大都由天文历法专家担任,最卓著者为僧一行。开元十五年(727),僧一行修成《大衍历》。这部历法系统周密,结构合理,比较符合天文实际,是当时的先进历法。后世历法几乎都是按照它的结构来编的,直到明朝末年吸收西洋历法后才有所改变,可见其影响之深远。
北宋沈括在《梦溪笔谈》中记述了他的“日有盈缩”这一重要发现。他在历法上独树一帜,提出的使用太阳历,即“十二气历”的主张:“直以立春之一日为孟春之一日,惊蛰为仲春之一日,大尽三十一日,小尽三十日;岁岁齐尽,永无闰月。”南宋宁宗时杨忠辅主持修成的《统天历》所测定的回归年长度为365.2425日,与西方1582年颁行的现行公历完全一致;还认识到了回归年长度不是固定不变的,而是古大今小,因此提出斗分差改正,是为天文学史上的重大发现。
至元十三年(1276),忽必烈下令设立太史局(后升为院),改修新历,由著名科学家郭守敬主持。郭守敬主持了大规模的恒星位置测量,测出前人未命名的恒星1000余颗;郭守敬还主持设立27个观察台、站,测量日影和北极极地高度,以及春分、秋分、夏至、冬至昼夜日刻的测定。在取得丰富准确的数据后,郭守敬等人参照前代历法,运用数学新成就,于至元十七年(1280修成新历,忽必烈赐名《授时历》,取“授民以时”之义,当年颁行天下。《授时历》仍以365.2425日为一年,这个数值同地球绕太阳一周仅差26秒。《授时历》是我国古代最精确和使用时间最久的一部历法。
崇祯二年(1629)九月,崇祯皇帝下令由徐光启领导历局开始编写新历法,在编纂过程中,历局聘请来华耶稣会的意大利人龙华民、葡萄牙人罗雅谷、瑞士人邓玉函、日耳曼人汤若望等人参与译书编纂。徐光启在崇祯六年年病逝,之后的编纂工作由李天经主持,崇祯七年十一月编纂完毕,定名为《崇祯历书》。《崇祯历书》采用第谷创立的天体系统和几何学的计算方法,深得西洋历法之精髓,预报符合天象。这部历书虽然因为明亡而没有颁行实施,但对清代历法影响巨大。汤若望对《崇祯历书》进行了删改、压缩,更名为《西洋新法历书》,并进呈清廷后,被采用,并改名《时宪历》,正式颁行。