自古以來,世界各國使用過許多不同的曆法,大致可分為3類,將地球繞太陽公轉一周的時間定為一年,即以太陽為標準製定的曆法,叫“陽曆”,又稱“太陽曆”。將月亮圓缺變化一個周期定為一個月,即以月亮為標準製定的叫“陰曆”。再一類就是以陽曆為主,以陰曆為輔的“陰陽曆”。
現在世界上廣泛使用的公曆,其來源可追溯到距今4700年前古埃及的太陽曆。
那時,埃及人已經在尼羅河兩岸進入定居的農業生活。尼羅河每年7月定期泛濫,10月底河水退入河床,在農田裏留下了一層肥沃的淤泥。埃及人就在11月進行播種,第二年三四月份進行收獲。為了不違農時,及時抓緊農業生產,埃及人漸漸懂得必須掌握尼羅河水的漲落期,準確地計算時間,也就是需要有一種曆法。
聰明的埃及人了創造了一個非常簡便的方法:把尼羅河每次泛濫的時間刻在木杆上,然後加以比較,從中發現兩次泛濫之間總是相隔365天上下。另外又發現,每當尼羅河的潮頭湧到今埃及首都開羅附近時,天狼星與太陽同時從地平線升起。因此他們把一年定為365天,而把天狼星與太陽同時從地平線升起的那一天,作為一年的起點。一年分為12個月,每月30天,餘下的5天作為年終節日。這就是古埃及的太陽曆。
太陽曆把一年定為365天,這與地球繞太陽公轉一周的“太陽年”的時間,即365天5時48分46秒相比較,隻相差一天的1/4.這在6000多年前已經是很準確了。但是,一年相差1/4天並不覺得,每經過四年就要相差一天。而經過730年,曆法上的時間與實際時間卻相差了半年,寒暑正好顛倒過來。這種歲差當然會給農業生產帶來麻煩。但盡管如此,它還是傳到了歐洲。公元前8世紀前歐洲使用的羅馬曆法(陰陽曆)比古埃及的太陽曆落後得多,春夏秋冬錯亂無序。每年隻有10個月,因而一些值得紀念的大事都不知在哪一天發生的。
到了公元前46年,羅馬曆法落後埃及太陽曆整整80天,給人們生活帶來麻煩,羅馬統帥儒略·愷撒在天文學家索西琴斯的建議下決定以埃及的太陽曆為藍本,來編製曆法。儒略曆法對埃及太陽曆年約1/4天的誤差作為這樣的調整:設平年和閏年,平年365天,閏年366天。每4年置一閏年。單月每月31天,雙月中的2月平年29天,閏年30天,其它雙月每月30天。這樣就更接近回歸年了。愷撒死後,繼承人奧古斯都因為自己生在8月,便從2月抽出一天加在8月上,使8月也成為大月,即31天,同時相應把9、11兩個月定為小月,10、12兩個月定為大月。經過這樣的改動,各月的天數與今天使用的公曆差不多了。
公元325年,羅馬皇帝在一次宗教會議上,規定儒略曆法為基督教的曆法,但沒有規定哪一年是它的起點。到了公元6世紀時,基督教徒把500多年前基督教傳說的創始人耶穌·基督誕生的那一天,說成是公元元年。“公元”的拉丁文的意思就是“主的生年”,用拉丁文A。D。表示。在這一年以前,稱為“公元前”,英文的意思是“基督以前”,用英文B。C。表示。
羅馬的儒略曆雖然比埃及的太陽曆進了一步,但與太陽年的時間相比,仍有11分14秒的誤差,每128年又要相差一天。積累到16世紀末,竟差了10天。於是,羅馬教皇格列高利十三世於1582年組織一批天文學家,根據哥白尼日心說計算出的數據,對儒略曆作了修改。首先撤銷了比太陽年時間遲了10天的曆法日期,即這一年原來的10月5日,改為10月15日;同時把置閏的方法改為以公元紀年為標準:能被四除盡的年為閏年:但是每世紀的第一年,雖能被四除盡,而不能被400除盡的,仍然不作閏年。如公元1600年是閏年,1700年就不是。過去四年一閏,400年共100閏;現在400年中有97個閏年。這樣就大體上彌補了每年11分14秒的誤差,要3000多年才會比太陽年的時間多計一天。這就是現今世界上通用的曆法,簡稱公曆或格列曆。人們的日常生活方便多了,人類曆史上發生的許多大事也有了較詳細的年代記載。