貼文者 : : 小津
有關西歷轉農歷的問題 - 2002-05-08 18:43:50
我想問一下,西歷轉成農歷是不是有公式?敬問哪條公式是怎樣.
一般普遍通用的曆法種類可以蓋分為太陰曆、陽曆及陰陽合曆三種。
(1)太陰曆:
太陰曆採用朔望月做為基本週期,以月球的運動做為天文依據的曆法,
它和太陽的運動沒有任何關係。相對而言是比較簡單的一種曆法,開始於人類
採用月亮朔望周期來計日的想法,故為世界各民族最早所採用。
太陰曆以朔日為每月的第一天,也就是在日落後首次觀測到眉形月初現的
那天,就是一個月的開始;這種曆法可的另一種好處就是,方便一些對於日期
不需太精確的農漁社會,因為只要看得見月亮,從月相的變化就可以約略概算
出日期,又由於月亮繞地的公轉對於地球潮汐有週期性的影響,故推算太陰曆
日期也可以概算潮汐時間,在生物界研究生物週期習性也很常使用,故常通行
於漁獵社會。
太陰曆是根據月相圓缺的週期訂出的曆法,也就是月以球繞地球一週的
時間為單位,這種單位稱為月,十二個月為一年。這裡所稱的「月」是指
「朔望月」,等於29.53059日,接近29.5日,大月三十天、小月廿九天,
全年各有六個大小月,並以「朔」為當月初一, 合計354日,但十二個朔望
月的實際長度為354.3671平均太陽日, 為使更接近平均曆年的長度, 計算
0.3671約等於11/30,故每三十年(太陰曆)中置十一個閏年 (閏年每年有
355天), 平均大約每三年就閏年一次。
由於太陰曆不能準確反應季節變化的週期,曆年又與回歸年相差十一天,
因此約三十三年就誤差循環一年,而相隔十七年時的冬夏正好完全相反。
因此不能符合農業生產的耕作需求, 現在只有回教人士採用的回曆,
係此種純陰曆。
*朔望月:從滿月到下一次滿月的時間長度,其長度在29.25天到29.75天之
間變化,平均每29.53天為農曆一個月,稱為朔望月。
又稱太陰月或會合月。會比恆星月還多2.2天的原因是地球也在
繞太陽公轉,每個月行進約30°,月球繞地球的公轉就得多花
一點時間才會滿月。
*恆星月:由太空看月球,月球繞地球一周的時間,大約27.32166天。
*朔:太陽、地球、月球三者對齊成一直線時,且月球在二者之間的月相,
看見月亮背對太陽的一面,全黑的月相。
*望:太陽、地球、月球三者對齊成一直線時,且地球在二者之間的月
相,看見月亮正對太陽和地球的一面,滿月的月相。
(2)陽曆:
又稱太陽曆,是以地球繞日公轉的週期(即一回歸年,每年約為
365.2422日) 為基本週期單位,一回歸年即是一個陽曆年,取一個平均值為
365.25 日,故平年365日,每積四年就有一閏年366 日。陽曆起源於埃及,
最初埃及人定一年有三百六十天,後來改為三百六十五天。陽曆大小月的分布,
是人定分配的,與月亮的圓缺無關。
在西元前 46 年為羅馬所採用,並為紀念當時的羅馬統治者儒略凱撒
而定名為儒略曆。此曆一年有十二個月,上半年的單月與下半年的雙月及
七月都是大月,每月 31日,其餘的都是小月,每月 30 日,但二月例外,
平年只有 28日,閏年 29 日。
陽曆演進的歷史
【儒略曆】
西元前46年,羅馬皇帝儒略.凱撒 (Julius Caesar) 在天文學家索西琴尼
(Sosigenes) 的參與下改革曆法,稱儒略曆。
儒略曆每年有365天,分為12個月,規定單數月31天;雙數月30天,平年時,
2月29天,閏年時30天。每4年閏年一次 (該年366天),平均每年長度為
365.25天,比回歸年多0.0078天,約每128 年相差一日
《註:一年的平均長度365.25日較一個回歸年 (365.2422日) 長 11分15秒》,
故儒略曆每四百年會多出3.12日。
直到西元前8年,羅馬會議議決稱8月為奧古斯都 (August),那是奧古斯都皇帝
(Augustus Caesar) 之名,同時改為大月31天,以紀念他的功績和凱撒
同等偉大。而8月以後的大小月便相反過來,9月和11月改為小月30天;
10月和12月則為大月31天;2月平年為28天,閏年為29天。
【格里曆】
為了使曆年的平均長度更接近回歸年,因此置閏的方法稍為改變,西元1582年,
羅馬教宗格勒哥里十三世依照曆法家的建議而頒布改曆,教皇根據意大利醫生
利里奧在1576年提出的方案,對儒略曆的置潤法做修正,併於當年(1582 年)
的10月4日之後做了日期的跳躍,使得隔天便是10 月 l5日,這個調整使春分
又回到3月 21 日附近(1582年春分為3月21日20時23分56秒)。格里曆為使其
長時間能與季節相配合,每400年須減少三個閨年,故規定每4年閏年一次
(366天), 逢百 (對世紀年) 不閏,逢四百又閏 (使四百年內少閏三次) ,
其餘為平年。調整後格里曆比儒略曆又少了三天,由於一年平均長度為
365.2425日,與回歸年僅相差0.0003平均太陽日,如此調整後的格里曆約
3300年才會誤差一天。
從此,陽曆每年有365天,每四年閏年一次(366天),逢百 (對世紀年)不閏,
逢四百又閏(使四百年內少閏三次)。換句話說:每四百年有閏年九十七次,
其餘為平年。這也是現在通用的公曆,我國於辛亥革命後,在西元1912年開始
採用格里曆為國家曆法,故又稱為國曆。
(3)陰陽合曆:
這種曆法結合了陰曆的便利性,加上了調節的設計使符合地球自轉週期
的四季變化,但便利不代表簡單,陰陽合曆是目前所流通曆法裡最複雜的一種。
陰陽合曆以朔望月為月的長度,而以回歸年為一年的平均長度,是一種兼顧月相
變化及季節變化兩種週期的曆法。
為調節日期,於每兩年或三年中增加一個閏月,為使一年的平均長度等於
一個回歸年,因此它成為這三種曆中最複雜的一種。
我國自有史以來就採用陰陽合曆(夏曆),它兼具陰曆和陽曆二者的特點。
陰陽合曆將「回歸年」和「朔望月」並列為基本週期,同時考慮太陽和月球的
運動,所訂定的曆法。此為我國固有的曆法,在習慣上簡稱『陰曆』,又因
農民喜歡以此曆進行農事,故稱農曆。陰陽合曆以月相變化的週期做為一個月
的長度,同時使曆年的長度接近回歸年。如此一來,每個月都符合月亮盈虧的
週期,也同時每年都和季節交替的週期相差不多。
陰陽合曆有太陰曆的基礎,每月平均有29.53天(朔望月*的長度),為了
處理整數的問題,定大月為30天,小月29天,並將「日月合朔」的日期作為
月首(農曆初一),也就是太陽和月球的黃經相等時。因以「朔」為月初,這是
人定的,所以大小月沒有固定在那一個月份當中,端賴月亮繞地運轉的速率
而定,如果兩次日月合朔之間有29天,那個月就是小月;若有30天,那個月
就是大月囉!台灣習俗稱除夕夜為「二九瞑」,事實上也經常「三十瞑」。
民國十七年的九月到十二月就有連續四個大月的記錄。
另外,十二個月的農曆平均約為354天,每年與回歸年(365天)相差約
十一天, 三年累積便超過一個月,因此平均約每三年需置閏年一次,閏年有
十三個月,但仍比回歸年少幾天。要解決這個問題, 我國春秋時代有
「十九年七閏法」,也就是在十九個陰曆年中加入七個閏月,使曆法更接近
回歸年的長度。這種曆法結合了精密的天文觀測與計算才發展出來,可見
使用這種曆法的中華民族,在古早的年代科技文明的發展就已經相當進步了。
西方在西元前433年才發現此週期,比我國約晚了一百六十餘年。
其粗略的推算法如下:先列出陽曆一年的日期,然後用朔望月的平均週期
29 日 12 時 44 分 2.9 秒,定每月初一日為陽曆何月何日,並列出每月
的日序;又用一回歸年的平均週期 365 日 5 時 48 分 45.3 秒,以定節氣
的陽曆日期。若某一農曆月中不含中氣,則這個月便是閏月,附屬於上一月,
例如上一月為四月,那麼這個月就是閏四月了。
想要了解與計算這種曆法,就必須對節氣作一個了解。
由於春分到秋分期間,地球經過遠日點,運動較慢(今年就超過186天) ,
所以兩個中氣間間隔的時間就長,而月亮繞地球的週期變化不大,因此不含中氣
的機會變大,閏月出現的機會就多些。古代曆法家取冬至為一年的開始,
自冬至點到次一年的冬至點整個回歸年的時間平分為十二等份,每個分點
稱為『中氣』,再將兩個中氣間的長度等分,其分點稱為『節氣』,
十二個中氣加十二個節氣,統稱為二十四節氣。節氣名稱以黃河流域地區的
寒暑變化及耕耘播種之農時命名。
*節氣:地球在公轉軌道上的位置, 每十五度一節氣,平均十五天一節氣。
*中氣:以春分(是中氣)開始,每隔一節氣為中氣(共有十二個),如大寒。
以下是二十四節氣的名稱,而在其右上角附有「*」記號的,實際應稱為中氣:
小寒、大寒*、立春、雨水*、驚蟄*、春分、清明、穀雨*、立夏、小滿*、
芒種、夏至*、小暑、大暑*、立秋、處暑*、白露、秋分*、寒露、霜降*、
立冬、小雪*、大雪、冬至*。
農曆如何置閏?十九年七閏法
29.53059 日/月× 235 月 =6939.6887 日
365.2422 日/年× 19 年(228月)=6939.6018 日
365.2422 ÷ 29.53 =12.368513
0.368513 × 19 =7.001747........每十九年七閏
陰陽合曆中安排有廿四節氣,和季節、氣候有密切關係,以為廣大農村
經營農事之參考,因此又稱農曆。閏月的安置是根據廿四節氣而定,因此平均
來看每一個月份應該分配出現兩個節氣,因此把不含「中氣」的月份或只含
一個「節氣」的朔望月定作閏月,並以上一月的名稱為名,稱「閏某月」。
2001年農曆四月份之後的一個月內(西曆五月廿三日至六月廿十日)
(農曆潤四月一日至四月廿九日)之間只有一個中氣的節氣,就是西曆6月5日的
「芒種」節,下個月的農曆初一是西曆5月23日,農曆月底(29日)是6月20日,
僅包含6月5日的「芒種」,因此這個月就成為閏月,並以上個月為名,
是「閏四月」,干支紀月也同樣為「癸巳」月。
農曆十二月(臘月)時的地球在近日點附近, 運動較快速,閏月出現的機會
就少很多,想要過兩個中秋節是可能的,而過兩個「除夕」,就太難了。
經過統計(參見下表),從西元1849年起至2031年止,閏五月的次數最多;
閏正月、閏十一月、閏十二月則沒有發生過;閏九月則僅2014年發生一次。
從統計表中亦可知:閏月的分佈並無規律性。
1849年至2031年閏月分佈表
閏月 發生閏月年份
閏二月 1890、1909、1917、1928、1947、2004、2023。
閏三月 1860、1879、1898、1936、1955、1966、1993、2031。
閏四月 1849、1868、1887、1906、1925、1944、1963、1974、1982、2001、2012、2020。
閏五月 1857、1865、1876、1884、1895、1903、1914、1922、1933、1952、1971、1990、1998、2009、2028。
閏六月 1873、1892、1911、1930、1941、1960、1979、1987、2017、2025。
閏七月 1854、1881、1919、1938、1949、1968、2006。
閏八月 1851、1862、1900、1957、1976、1995。
閏九月 2014.
閏十月 1870、1984。
舊文重貼:因干支並不代表農曆,只是中國紀日法,因此題目要改改.
舊文:
原命題是陰陽曆換算捷法,討論的是陽曆求日干支法,本人試就後者提供較完整的解答.
一.儒略周日:若知每年1月1日前一天的儒略周日(基數),則當年任何一日的儒略周日
皆可算得.日干支=[(儒略周日-10)/60]R,R代表取餘數,R=0則R=60
公式如下:
格里曆(自西元1582年10月15日2299161起行,英國自1752年9月14日2361222起行)
DC=西元年數,BC=西元前年數,Y=6401-BC
儒略周日基數=(DC-1)*365+[(DC-1)/4]Q-[(DC-1)/100]Q+[(DC-1)/400]Q+1721425
儒略周日基數=(Y-1)*365+[(Y-1)/4]Q-[(Y-1)/100]Q+[(Y-1)/400]Q-616127
Q代表取整數.
置閏之法
1.DC或Y可被4整除但不可被100整除為閏年,2月29天,其餘為平年,2月28天.
2.DC或Y可被400整除者為閏年.
儒略曆(曆元西元前45年1月1日1704987至西元1582年10月4日2299160止)
(英國至1752年9月2日2361221止)
儒略周日基數=(DC-1)*365+[(DC-1)/4]Q+1721423
儒略周日基數=(Y-1)*365+[(Y-1)/4]Q-616177
置閏之法,DC或Y可被4整除整除為閏年,2月29天,其餘為平年,2月28天.
1.例如求2001年9月8日格里曆日干支為何?
2001/4=500餘1,故知為平年
儒略周日基數=(2001-1)*365+[(2001-1)/4]Q-[(2001-1)/100]Q+[(2001-1)/400]Q+1721425
=2451910
9月8日儒略周日=2451910+31+28+31+30+31+30+31+31+8=2452161
[(2452161-10)/60]R=11甲戌日
2.求西元前551年9月28日格里曆(孔子誕辰)日干支?
Y=6401-551=5850 ,5850/4=1462餘2,故知為平年
儒略周日基數=(5850-1)*365+[(5850-1)/4]Q-[(5850-1)/100]Q+[(5850-1)/400]Q-616127
=1520176
9月28日儒略周日=1520176+31+28+31+30+31+30+31+31+28=1520447
[(1520447-10)/60]R=37庚子日
3.漢太初元年正月初一日癸亥.*儒略曆*西元前104年2月22日
Y=6401-104=6297平年
儒略周日基數(6297-1)*365+[(6297-1)/4]Q-616177
=1683437
2月22日儒略周日=1683437+31+22=1683490
[(1683490-10)/60]R=0癸亥日
二.以上如不須知儒略周日,可化簡求算日干支
以格里曆為例
干支基數B=[{(DC-1)*5+[(DC-1)/4]R-[(DC-1)/100]R+[(DC-1)/400]R+15}/60]R
或 B=[{(Y-1)*5+[(Y-1)/4]R-[(Y-1)/100]R+[(Y-1)/400]R+3}/60]R
例1.求西元1967年3月25日日干支?平年
干支基數B
=[{(1967-1)*5+[(1967-1)/4]R-[(1967-1)/100]R+[(1967-1)/400]R+15}/60]R
={[9830+491-19+4+15]/60}R
=(10321/60)R
=1
日干支=1+31+28+25=85,85-60=25戊子日
為免逐月計算麻煩,可先列表如下:
****1月2月3月4月5月*6月*7月*8月*9月*10月11月12月
平年0**+31+59+90+120+151+181+212+243+273+304+334
閏年0**+31+60+91+121+152+182+213+244+274+305+335
例2.1985年12月22日日干支?
B=36,平年,36+334+22=392,392-60*6=32乙未日
例3.1899年3月8日日干支?
B=5,平年,5+59+8=72,72-60=12日干支為乙亥.
年干支=西元年數-3+-60n n為0或整數
年干支=民國年數-12+-60n
年干支=58-西元前年數+-60n
年干支=49-民前年數+-60n
簡化:
陽曆求干支速算公式(利用干支基數再加自1月1日起算的日數求干支)
A.格里曆
Y=DC-1;C=(Y/100)Q,取整數亦即世紀數.Y2=西曆年之個十兩位數-1=(Y/100)R
K=世紀年干支基數
C/4=M....餘數R
K=15-3M-16R+-60n
DC年干支基數=Y2*5+(Y2/4)Q+K+-60n
Y2*5這項Y2可先減去12的倍數,如12,24,36,48,60,72,84,96等等
例一.西元1958年,Y=1958-1=1957,C=19,Y2=57,C/4=19/4=4...餘3,M=4,R=3
K=15-3*4-16*3=-45,-45+60=15
1958年干支基數=57*5+(57/4)Q+15=(57-48)*5+14+15=45+14+15=74,74-60=14
例二.西元1700年,Y=1700-1=1699,C=16,Y2=99,C/4=4...餘0,M=4,R=0
K=15-3*4-16*0=15-12=3
1700年干支基數=99*5+(99/4)Q+3=(99-96)*5+24+3=15+24+3=42
B.儒略曆
Y=DC-1;C=(Y/100)Q,取整數亦即世紀數.Y2=西曆年之個十兩位數-1=(Y/100)R
K=世紀年干支基數
C/4=M....餘數R
K=13-15R+-60n
DC年干支基數=Y2*5+(Y2/4)Q+K+-60n
例一.西元1582年,Y=1582-1=1581,C=15,Y2=81,C/4=3...餘3,R=3
K=13-15*3=-32,-32+60=28
1582年干支基數=81*5+(81/4)Q+28=(81-72)*5+20+28=45+20+28=93,93-60=33
例二.西元1000年,Y=1000-1=999,C=9,Y2=99,C/4=2...R=1
K=13-15*1=-2
1000年干支基數=99*5+(99/4)Q-2=(99-96)*5+24+3=15+24-2=37
元旦日的干支是干支基數加1即是.西元前的算法取Y=6401-BC,K的公式格里曆時
改為K=3-3M-16R+-60n,儒略曆時則與西元後的公式相同.
每月之日干支序數SH公式(月數>=3)
格里曆/儒略曆,平年,奇數月SH=(月數/2)Q+28-30+D,當月數>=9時,SH要加1
偶數月SH=(月數/2)+28+D,...D為日數.
閏年,上面兩式中之28改為29
2月之SH=31+D,1月之SH=D
求任一日的日干支=當年干支基數+SH
接下來提供一些算例,以加深印象.
1.韓信-240.10.6(酉時生)(儒略曆)
6401-240=6161平年
61 ->13-15=-2
61 ->60 ->15
10月,10/2+28+6=39
日干支=-2+15+39=52乙卯
2.關羽160.8.15(申時生)(儒略曆)
1 ->13-15=-2,閏年(由160判斷,以下同)
60 ->59 ->55+14=69 ->9
8月,8/2+29+15=48
日干支=-2+9+48=55戊午
3.諸葛孔明181.8.20(巳時生)(儒略曆)
1 ->13-15=-2,平年
81 ->80 ->40+20=60 ->0
8月,8/2+28+20=52
日干支=-2+52=50癸丑
4.韓愈768.8.18(辰時生)(儒略曆)
7 ->13-15*3=-32,閏年
68 ->67 ->35+16=51
8月,8/2+29+18=51
日干支=-32+51+51=70 ->10癸酉
5.邵康節1012.1.21(戌時生)(儒略曆)
10 ->13-15*2=-17,閏年
12 ->11 ->55+2=57
1月,21
日干支=-17+57+21=61 ->1甲子
20.蔣宋美齡1898.3.4(寅時生)(格里曆)
18 ->15-3*4-16*2=-29,平年
98 ->97 ->5+24=29
3月,1+28-30+4=3
日干支=-29+29+3=3丙寅
21.余登發1904.9.21(午時生)(格里曆)
19 ->15-3*4-16*3=-45 ->15,閏年
4 ->3 ->15
9月,4+29-30+1+21=25
日干支=15+15+25=55戊午
22.2001.9.13(格里曆)
2000,以2001年判斷平年,以2000年計算日干支
日干支=4+28+1-30+13=16己卯
23.2001.12.28(格里曆)
2000
日干支=6+28+28=62 ->2乙丑
西曆紀元前的日干支求法,除了已介紹的用6401減年份之算法外,還可用以下
公式求解:
Y=BC-1,C=世紀數-1=(Y/100)Q
C/4=M...餘R
格里曆,係數A=30+3*M+16*R+-60n
儒略曆,係數A=28+15*R+-60n
個十兩位數Y2,以4n*100+1-Y2決定平年.閏年.
格里曆或儒略曆係數B=(100-Y2)*5+[(100-Y2)/4]Q
月.日,同西元後算法得E
日干支=A+B+E+D,D為日期
例1.西元前551年9月28日格里曆,求日干支?
前6世紀,5/4=1...餘1,以801-551=350判別為平年
A=30+3+16=49
B=(100-51)*5+[(100-51)/4]Q=5+12=17
E=4+1-2+28=31
日干支=49+17+31=97 ->37庚子
例2.西元前1864年9月10日,儒略曆,求日干支?
前19世紀->18/4=4...餘2
A=28+15*2=58
B=(100-64)*5+(100-64)/4=9
E=4+1-2+10=13
日干支=58+9+13=80 ->20 癸未
轉貼大陸文章:
心算紀日支法(易友林雨菡友情提供)
要按公曆心算任意一天的紀日支,只需將公曆年號乘以5、加公曆年號除以4、加上9、
加上日期,再加已經過去了幾個大月,得數便是支序號。如月份是雙數,則間隔30天
,使用此法一律以3月1日作為當年的起點,日期在3月1日以前,年號按上年論。
公曆大月從3月起。依次為3、5、7、8、10、12、1七個。
所謂支序號便是60花甲的次序,如甲子為1、乙丑為2,直至壬戌為59,癸亥為60。在
使用中,可牢記甲子為1,甲戌為11,甲申為21,甲午為31,甲辰為41,甲寅為51,再
依此順序,將序號化為支。此法可用歌訣概括如下:
乘五除四九加日,雙月間隔三十天。
三五七八十尾頭,此為妙法記心間。
例1:1949年10月1日,
年號49*5=245,扣除60的倍數後餘5.
年號49/4=12, 常數為9,日期為1,共遇3、5、7、8四個大月,月份為雙數.按訣心算:
5+12+9+1+4-30=1,
則1949年10月1日為甲子。
例2:1919年5月4日.
年號19*5=95,扣除60的倍數後餘35.
年號19/4=4,常數為9,日期為4,隻遇3月一個大月,月份為單數.
按訣心算:35+4+9+4+1=53,則1919年5月4日為丙辰。
例3:1964年2月27日.
因日期在3月前年號以63年論,63*5=315,扣除60的倍數後余15,63/4=15,常數為9,
日期為27,共遇7個大月,月份為雙數.
按訣心算:15+15+9+27+7-30=43,則1964年2月27日為丙午。
最後說明一點,下個世紀使用此法,年號一律加上100,如2000年以100論,2013年以
113論。
補充一個儒略日的資料,雖然公式裡沒用上,不過天文計算和歷史研究也少
不了要知道一下
儒略日(Julian Date)
儒略日(JD)與儒略曆沒有關係,是Joseph Justus Scliger在1582年所訂定的,
這名稱顯然是為了紀念他的父親Julius Caesar Scaliger而來。
儒略日的起點訂在西元前4713年1月1日的中午,
即JD 0 = 4713 B.C. 1月1日12:00 UT,這個日期是考慮了太陽、月亮的
運行週期,以及當時收稅的間隔而訂出來的。Joseph Scliger定義儒略週期
為7980天,是28、19與15的乘積,28是一年中每天的星期日期都相同的週期
(例如某年3月9日是星期五,28年後的3月9日又是星期五),19是沙羅週期
(235朔望月)的回歸年數,15是西元四世紀時羅馬皇帝Constantine所採用
15年之羅馬象徵週期。
如果要在地球上共同使用一個曆法計日來記載古今中外的事情,
使用儒略日當作時間標準是相當不錯的,每天的時刻都可以換算成儒略日,
因此在表達天體觀測現象的時間發生點、天文計算、歷史事件或在國際論文
裡也常用儒略日來計日。但是要留心儒略日的一天是「由中午到中午」,
與一般從午夜到午夜的習慣不同。在天文年鑑或歷史研究網站中都可以找到
對應的儒略日,例如臺北市立天文台每年發行的「天文年鑑」上,有每天的
儒略日,很容易查表對照。