傳說上古的黃帝創造了曆法,至遲在商代時期,中國已經有了詳盡的天象記錄以及曆法。除了指導農業生產以外,中國古代許多宗教性節日都必須根據天象制定,御用天文學家必須不斷地觀測天象,以修正曆法,安排節日。
至遲從商代開始,中國人就使用著綜合太陽和月球運行規律的陰陽曆,也就是今天所說的農曆。農曆的月份長度以朔望月為標準,為了契合地球公轉和四季變化,每隔幾年,就需要插入閏月進行調整。從甲骨文中,我們得知,商人將一年劃分為12月,閏年13月,大月30天,小月29天,已經和今天的農曆很接近了。
和今天不同,中國古人最初是通過黃昏時分星宿的出沒來確定四季的。《尚書.堯典》中以鳥、火、虛、昴四宿為仲春、仲夏、仲秋、仲冬黃昏時刻的中星。春秋時期,古人發明了土圭,用來觀測日影,確定冬至和夏至。當時農曆已經發展得非常完備,人們採用19年7閏的調整周期,這要比古希臘的冬周期早了一百多年。春秋時期人們已經知道兩分兩至(春分、秋分、夏至、冬至)的存在,到了秦漢時期,又逐漸確定了其他節氣,這就是著名的二十四節氣。
漢代以後,中國的天文學研究主要局限於曆法方面。古代曆法除了需要確定年月,還要推算日月食和行星的運動。為了使曆法符合天象,就需要不斷進行觀測,並制定新的曆法。
漢武帝時期由落下、鄧平等制定太初曆,是中國最早根據實際觀測而制定的曆法,也是保存下來的第一部完整曆法。太初曆囊括了二十四節氣、五星、交食周期、閏法、朔晦等,已經具備了後世曆法的各項主要內容。太初曆沿用了19年7閏的置閏法,以365.25天為回歸年(指太陽中心連續兩次經過春分點所需的時間)的長度,以29又43/81(29.530864)天為朔望月周期,已經和今日的觀測數據非常接近。之後由劉歆編制的三統曆,進一步完善了日月食和五星運行周期,成為後世曆法的規範。
在三統曆中,為了推算日、月和五星的運動,劉歆設置了一個理想起點(曆元)作為運算基準,從曆元往上推,得出一個日月合璧,五星連珠的時刻,這個時刻就稱為上元。劉歆將這一23639040年的大周期稱為太極上元,從上元到年份的年數稱積年,通稱上元積年。
漢代之後,隨著計算手段和觀測方式的進步,曆法精確度也不斷提高。南宋時期楊忠輔的統天曆已經以365.2425天為回歸年長度,和今日通行的公曆回歸年長度相同(但早了三百多年),統天曆還廢除了繁雜的上元積年計算,提出了回歸年長度有變化的概念,不過這些改革,直到元代郭守敬的授時曆才得以實施。
近代之前,農曆通行於東亞各國。元代以前,中國的曆法主要還是以中國傳統天文理論為基礎。元代時,隨著和中東的交流,伊斯蘭世界的回曆傳入中國,並對之後的曆法產生了一定影響。明代中後期,隨著歐洲傳教士的到來,以《崇禎曆書》為標誌,中國傳統天文學的計算方式逐漸從代數方法轉為希臘式的幾何學方法。不過在形式上,依舊延續著傳統的陰陽曆體系。
太平天國時期,使用過一種與眾不同的太陽曆,稱天曆。天曆由馮雲山主導創立,以節氣為基本準則,1年12個月,大月31天,小月30天,共366天。天曆的月份根據節氣制定,不計朔望,不分吉兇,不設閏月和閏日,為了調整1年的長度,每40年設置一「斡」,除了「斡」年以外,其他年份的日數、月數,季數都很整齊,非常容易記憶和統計。儘管天曆有著不少值得稱道之處,不過隨著太平天國的失敗,這種曆法實行不到20年,就淹沒於歷史長河之中。
至於紀年方式,中國古代先後使用過歲星和幹支紀年。
歲星,是木星的別稱,古人以12年(實際為11.86年)作為木星運行的周期。使用歲星作為紀年標準,可以避免各國年號差別帶來的混亂。歲星紀年起源於周代,流行於戰國到秦漢之交,由於和木星實際運行周期的差異,累積久了,就不符合實際天象了。
幹支紀年萌芽於西漢,通行於東漢之後。幹支是天幹和地支的總稱,兩相搭配,正好構成了60年1循環的周期。漢章帝元和二年,政府下令在全國推行幹支紀年,並一直延續至今。結合流行於幹支之前的歲星紀年,就可以得出從東周至今的歷史年表。
清末,為了弘揚傳統,塑造民族認同,並表達與清廷勢不兩立的態度。經學家劉師培提出以黃帝誕生為紀年起點,革命黨人採納了這種意見,並以邵雍和皇甫謐推算的黃帝誕生之年(公元前2711年)為起點。武昌起義後,黃帝紀元推行至各省,民國時,則並行使用著黃帝紀元和民國紀元。
除了農曆,中國各地的少數民族也有自己獨特的曆法。
雪域高原的藏曆起源於文成公主傳過去的農曆。藏曆也使用幹支紀年,但以五行代替了十天幹,以十二生肖代替了十二地支。1025-1027年間,從印度傳來一種曆法,被稱為星曆。此後,藏族歷史文獻採用星曆紀年,以60年為1個世紀。總體來說,藏曆是與農曆相似的陰陽曆,但採用了印度傳來的星曆計算節氣。使用28或27星宿計算吉兇,採用七曜命名的星期。藏族人把1天分為60水時,1水時60水雨,1水雨6息(相當於4秒),以連續的兩次日出為1日。
雲南的傣族使用傣歷,其歷史可追溯至西漢的太初曆,屬於陰陽曆。傣歷採用和古代中國相同的19年7閏法,並將閏月設在9月。傣曆紀元始於638年的3月22日,他們的新年大約相當於公曆的4月,每到新年那天,就會舉行盛大的潑水節。傣歷使用幹支紀日法和七曜一周法,他們把一天分為4個部分,每個部分3個段落,共12時辰,或將1晝夜分為60時度,每個時度相當於24分鐘。
每年夏至前後,是各彝語族群的火把節,不同的火把節傳說大同小異,都講述著人類不畏強權,勇鬥神明的故事。
西南的彝族使用著幾種曆法。除了類似農曆的陰陽曆外,據人類學家劉堯漢考證,雲南寧縣彝族使用著一種以月經周期28天為1個月,1年13月,共364天的曆法。另有10月、12月和18月的太陽曆,三種太陽曆1月分別有20、30和36天,年末的5天為過年日,逢閏年則加上1個閏日。18月曆與中美洲的古代曆法非常相似,這也引起了不少學者的關注。