明代天文学测算的停顿到了万历年间已酿成了严重后果,万历二十年(1592)五月甲戌夜发生月食,而钦天监推算与实际相差一天,这种错误对于古代天文学发达的中国来说简直是不可容忍的。3年后,朱载堉和邢云路分别上书改历,并献出自己编撰的新历法。但是顽固守旧的钦天监竭力反对,他们对皇世子朱载堉没有办法,却反诬邢云路“私习历法”犯了祖宗的禁令,改历的建议被取消。万历三十八年(1610)十一月壬寅朔日食,钦天监推算食分和时刻又发生较大错误,改历建议又起,这一次反映比较强烈,连钦天监的主管部门礼部都已同意,并推荐了邢云路、范守己、徐光启、李之藻等人,但最终还是被旧势力阻挠而未成。
崇祯二年(1692)五月乙酉朔日食,钦天监预报又发生明显错误,改历之议复起。此时,徐光启正担任礼部侍郎,由于他的努力,崇祯帝才同意改历,在宣武门内成立历局,并任命徐光启主持此事。这时最初来华的耶稣会传教士利玛窦已在19年前死于北京,徐光启、李之藻等人曾同他交往,翻译了《几何原本》前9卷,传入了托勒密的九重天宇宙结构,地为圆球的概念,天文仪器星盘等西方古典天文数学知识。他们深知要改革历法,必须利用欧洲天文学知识中的几何学方法。而对中国传统历法比较熟悉的人邢云路、朱载堉、范守已等人此时已相继去世,因而他们决定此次改历以西法为基础,并推荐了传教士龙华民、邓玉函、汤若望、罗雅谷等人来历局工作。
明末的改历从崇祯二年九月开始,至七年十一月结束,成书137卷,名为《崇祯历书》。这本书是中西天文学合流的第一部著作,以介绍欧洲天文学知识为主。按徐光启的计划,它包括五个部分:法原,即天文学理论,天体运动轨道之类;法数,即天文表,天文数据之类;法算,即天文计算中所使用的数学方法,主要是几何学和三角学;法器,即天文仪器;会通,即中西各种度量的换算表。《崇祯历书》的章节安排则按中国古历法的体系,日躔、月离、交食、行星、恒星等。
就内容来看,《崇祯历书》抛弃了中国古历的代数学体系,以西方天文学的框架进行日、月、行星运动的推算。首先建立起一个宇宙结构体系,这是丹麦天文观测家第谷所创立的介乎哥白尼日心说和托勒玫地心说的中间体系。按第谷体系,月亮绕地球运行,五大行星绕太阳运行,太阳又带着五行星绕地球运行,地球居于中心不动。我们所看到的行星视运动是它们双重运动叠加的结果。这一点就同中国古历法的推算步骤无共同之处了,中国古历法中考虑日、月、五星的运动时从不考虑它们的绕转关系,无需建立各行星的轨道体系。
在日、月、五星各有其绕转轨道的基础上,又建立本轮和均轮系统。天体在均轮上运动,均轮心在本轮上运动,本轮心又在本天上运动,本天心对太阳、月亮来说是地球,对各行星来说是太阳。只要选择各天体的运动速度,就可以组合出日、月的不均匀运动和行星的顺、留、逆等变化,这一套方法在公元前已由古希腊天文学家设计出来,同中国古历传统的代数学方法又是毫无共同之处的。
此外,《崇祯历书》中引入了明确的地球概念,采用经纬度制,周天360度制,一日96刻制,数字的60进位制,赤经坐标从春分点开始分成十二次,每次30度,赤纬坐标从赤道向天极计量共90度;引进黄道和黄极概念,建立黄道坐标系;引入球面和平面三角学,以三角计算代替中国古历中的经验公式和“弧矢割圆术”等等,这一切都同中国古典天文学的体系不同。
尽管这一套体系和方法与欧洲近代天文学的发展状况还有很大差距,第谷体系也是违背客观实际的,但是《崇祯历书》在相当程度上将中国古典的天文体系转到了近代天文学的轨道上,为今后接受新的天文学知识打下了基础。当然,那时的欧洲天文学家们研究的重点还在于太阳系的结构和运动,对于太阳系之外的恒星世界是个什么样子也所知甚少,因而,对中国古典天文学的改造也仅在太阳系的知识方面有积极进步的意义,而对恒星、对宇宙总体的看法方面还要等待近代天文学的进一步发展。
徐光启在《崇祯历书》编撰过程中逝世,他原先设想的计划因而受到一定程度的影响。虽经他的继承人李天经的努力,这部书总算最后编成了,但反对派和保守势力也再次抬头,他们支持墨守旧法的魏文魁等人又成立了一个历局,因地处东城,故称东局,跟李天经领导的位于西城宣武门内的西局开展争论。明政府这时已是风烛残年,摇摇欲坠,无力顾及这类历法问题上的矛盾。《崇祯历书》在1634年底完成,10年后明朝灭亡,它未能在实际中得到行用。
清兵入关,建立清朝,传教士汤若望乘机将《崇祯历书》稍加修改成103卷献给清政府,并称这是他多年制造仪器、亲自观测所建立起来的一套新方法。其时清朝刚刚入关立国,急需一个新历法颁行天下,于是立即同意采用,1644年11月任命汤若望为钦天监监正,所献历书称《西洋新法历书》,据此编算的每年历本称为《时宪历》。其实这就是徐光启、李天经等人主持编成的《崇祯历书》。