有關西歷轉農歷的問題

貼文者 : : 小津

有關西歷轉農歷的問題 - 2002-05-08 18:43:50

我想問一下,西歷轉成農歷是不是有公式?敬問哪條公式是怎樣.
貼文者 : : 小凱哥

Re: 有關西歷轉農歷的問題 - 2002-05-08 18:58:19

確實有公式,不過使用查表法會簡單一點

我看大概只有天下第一大好人才會把資料整理給你了 ^_^

by 小凱哥彙編



一般普遍通用的曆法種類可以蓋分為太陰曆、陽曆及陰陽合曆三種。

(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。


貼文者 : : 小津

Re: 有關西歷轉農歷的問題 - 2002-05-08 21:57:15

謝謝.查表法真是是快得多.

我看,命理網的八字或紫微斗數起盤程式,是用查表法罷(或者查表法+計算法混合使用).
貼文者 : : ziyou

Re: 有關西歷轉農歷的問題 - 2002-05-09 14:32:39

謝謝你的說明

有幾個問題想請教
一: 我知道19年要置7個閏月? 但如何確認讓缺乏中氣的月份
為閏月 會每19年發生7次
二: 依你的說法是否所謂的農曆也會因經度的不同而造成每
個地區都不同
三: 請問哪裡有完整的日月望朔及節氣的資料庫也供一次下載
而不是一次只有一年的資料

謝謝
貼文者 : : 小津

Re: 有關西歷轉農歷的問題 - 2002-05-09 14:48:27

請問哪裡有完整的萬年曆可供一次下載而不是一次只有一年的資料.謝謝.
貼文者 : : 小凱哥

Re: 有關西歷轉農歷的問題 - 2002-05-09 16:20:42

遠在天邊近在眼前

http://destiny.xfiles.to/ubbthreads/showflat.php?Cat=&Board=YinYang&Number=82495&page=0&view=collapsed&sb=5&o=0&fpart=

請注意裡面的附加檔案 ^_^

你要的網頁程式有 Explorer 和 NetScape版本, 請看列出討論區清單
網站最下面的鏈結
貼文者 : : 小凱哥

Re: 有關西歷轉農歷的問題 - 2002-05-09 18:30:54

您問的問題還真是切中要害啊!

>一: 我知道19年要置7個閏月? 但如何確認讓缺乏中氣的月份
>為閏月 會每19年發生7次

答: 既然你已經知道 農曆為陰陽合曆,那麼如果不用查表法,
就得有星曆資料庫,也就是說有了以西曆正確時間的節氣資料配合朔望月資料
就可以推算. 老實講,既然如此何不查表呢? 反正都是資料庫.
難道你想研究天文計算公式?

以過來人的經驗勸你大可不必,除非你對天文有興趣,數學基礎和物理基礎都很好的話則例外.

二: 依你的說法是否所謂的農曆也會因經度的不同而造成每
個地區都不同

答:以天文計算來說確實需要考慮球體表面座標和太陽系統座標轉換的問題
,但是農曆的日期卻不見得完全依照正確的天文時間,只是接近值,譬如以正確
的月象來看,望月不見得是農曆十五日,也可能是十六日,所以還是建立對照表
輔以計算會好一點,端視你想用在哪一種地方

但是節氣計算可以排除在此特例之外,若採節氣分月換柱
就沒有閏不閏月的問題.

朔望月的資料庫請 看附加檔案
http://destiny.xfiles.to/ubbthreads/showflat.php?Cat=&Board=YinYang&Number=82990&page=0&view=collapsed&sb=5&o=0&fpart=
貼文者 : : ziyou

Re: 有關西歷轉農歷的問題 - 2002-05-09 21:16:54

五六年前我寫了一個斗數排盤程式 主要是利用一般的萬年曆
找出對應的陰曆日期 所以也可以說是利用資料庫 大約兩
年前 加入張維鈞先生的校正斗數萬年曆資料 因此大概東猜西猜
也知道萬年曆會跟經度產生關係 舉例來說 東經 105 度的斗數
用的萬年曆剛好是為我們所常用的萬年曆 所以我想如果是
其他經度則其萬年曆自有所不同 有時日期會相差近一天
所以才想找找節氣的資料庫下載 若哪一天 心血來潮 或許寫個
根據出生地的經度修正的斗數專用萬年曆 我想應該不是困難的
事 此外想請教 既然放閏月的方法那麼簡單 為何我有時看到
某年的閏月會有兩種版本 印象中好像是 199X 年的某一年 是不是
又有某些例外的規定?
貼文者 : : 小凱哥

Re: 有關西歷轉農歷的問題 - 2002-05-09 22:05:42


一般的農民曆,換月柱是依據農曆每月初一來換柱,並且閏月延續上一個
月的月柱干支,若以節氣來換柱則就沒有這種問題,因為節氣是依據地球
繞日公轉而定,每年都會有24個節氣,所以必須看你用的斗數排盤方式
到底月令依一般農民曆還是依節氣,若依節氣,反正現在的資料庫都精確到
時分秒了,只要依照你所處的時區來分隔加減就好了,更精確者在加以校正
真太陽時,相當精確. 也不會有疑慮.

貼文者 : : 站長

Re: 有關西歷轉農歷的問題 - 2002-05-09 22:57:51

我也認為其實陰曆應該依精度而有所不同
但,我國(民國後)曆法是依據東經120度來制定
那兒是南京,也是紫金山天文台的所在地
貼文者 : : ziyou

Re: 有關西歷轉農歷的問題 - 2002-05-10 09:07:50

所以對在西經地區的人 是否還能適用以東經120度所制
定的萬年曆的日期來論命 就有待商確了 斗數差15度
都有些日期都須要校正了 更何況是在歐美地區的人士
貼文者 : : 近道

Re: 有關西曆轉農曆的問題(代答) - 2002-05-12 19:59:25

ziyou先生問:
一: 我知道19年要置7個閏月? 但如何確認讓缺乏中氣的月份
為閏月 會每19年發生7次
二: 依你的說法是否所謂的農曆也會因經度的不同而造成每
個地區都不同

答:
第一個問題就是所謂的造曆程式,十多年以前氣象局的人員也在找呢?我沒有
精密的節氣與合朔公式,因此自己導出很簡單的近似公式,不過誤差也相當大
,但因一時辰兩小時,節氣差個15分不算什麼,陰曆誤差大就不用,反正自己玩,
十多年前倒也給我寫出一個BASICA程式,專門造近似陰陽合曆,不是用查表對
照法,只是用會給站長笑掉大牙的二次式(節氣)和一次式(合朔),不過還真好
用呢,我可以自己排八字,分析冬至夏至干支,甚至由八字找時間的反算也可能
了,求算近似的古曆雖不完整但也算很方便.今天站長有精密的節氣與合朔公
式或資料來源,寫程式功力一等一,要寫個造曆程式應該不費吹灰之力.但是那
只適用於今後至西元3200年以前,因為將來後代為消除一日之誤差,可能預先每
遇3200可整除之年要廢掉一個閏 2 月,因此萬一曆法變了,程式要有應變之方,
才能傳諸千秋萬世而不朽.(我聽說地球與月球運行軌道公式每年都要觀測修正
微調,不知如何處理).而造曆程式最好另寫一個能適用任何曆法的古曆造曆程
式,只要預先輸入當年的曆元,歲實,一朔望月長度,置閏規則等等,程式可以跑
出任何一年的陰陽合曆來,往前推到西元前841年有甚多史料,已知曆法文獻可
用,之前則要用種種方法去考證才能真正分曉.站長程式可算10800年之久,但很
不幸古人沒有電腦(?),曆法沒有今天精密,用今天的程式去造一個正確的古曆,
恐怕多數不符合史料,還是沒有用處.陰曆可29,30天調,19年7閏錯不了,不然請
站長做出程式跑跑,就可證明了.

第二個問題,不知我的觀念對不對,節氣,合朔,只是指地球,月球,太陽各取一個
代表性的中心點,以球面幾何學或球面測量學,軌道物理知識等等可以推算全球
表面任何一點與中心點之關係,因此所謂交節氣,日月合朔全球一致,只是地方
時因為經度不同而有差異,如格林威治天文台是0時0分交節,東經120度的我國
中原標準時區就是8時0分交節,日本東經135度時區為9時0分交節,而且因為節
氣,合朔之星球時刻全球相同,造曆用的彼此關係固定,因此並不需要分別造各
經度適用的陰陽曆,只是異地應用起來,節氣.合朔都要換算成當地時間來決定
陰曆月令與日數而已.

以上看法如有謬誤,敬請指正.


貼文者 : : adamyeh

有關西歷轉農歷干支的手算公式 - 2002-05-12 22:44:44

dear all:
post一篇個人的舊文回應!
----------------------------------------------------------
  柏賢嘗言初學當徒手成卦,唯日期之干支難算,上個月在某一大陸網站看到口訣及計算例,
「乘五除四九加日,双月間隔三十天。
 一二自加整少一,三五七八十尾前。」(全文另貼)
花了一個禮拜仍不能解,其中有些但書無法掌握,遂另整理如下:

§徒手成卦--日期換算干支篇

柏賢嘗言初學當徒手成卦,唯日期之干支難算,上個月在某一大陸網站看到口訣及計算例,花了一個禮拜仍不能解,因為計算例的有些但書無法掌握。遂自行拿本萬年曆,細心推導數學關係,另整理公式如下:

一、求餘數

公式:(Y*5+(Y+2)#4+(M-1)#2+D+5+C)%60
┌┬─┬─┬┬─┬──┬┐
││M│C││M│C ││%:求餘數之運算
├┼─┼─┼┼─┼──┼┤#:求商數之運算
││1│2││2│31+2││Y:年,以民國為主
││3│0││4│31 ││M:月份
││5│0││6│31 ││D:日期
││7│0││8│31 ││C:係數表
││9│1││10│31 ││
││11│1││12│31 ││
└┴─┴─┴┴─┴──┴┘
例1:民國85年1月16日, M=1 → C=2
(85*5 + (85+2)#4 + (1-1)#2 + 16+5+2 )%60
=(425+21+0+16+5+2)%60 =469%60 =49(餘數)

例2:民國88年4月18日, M=4 → C=31
(88*5 + (88+2)#4 + (4-1)#2 + 18+5+31 )%60
=(440+22+1+18+5+31)%60 =517%60 =37(餘數)

例3:民國90年11月27日,M=11→ C=1
(90*5 + (90+2)#4 + (11-1)#2 + 27+5+1 )%60
=(450+23+5+27+5+1)%60 =511%60 =31(餘數)

例4:民國108年7月19日,M=7 → C=0
(108*5 + (108+2)#4 + (7-1)#2 +19+5+0 )%60
=(540+27+3+19+5+0)%60 =594%60 =54(餘數)

二、餘數換算干支

(1) 個位數即為天干
(2) 餘數%12,新的餘數就是地支

例5 49個位數為9,天干為壬
   49%12=1,  地支為子 → 壬子日

例6 37個位數為7,天干為庚
   37%12=1,  地支為子 → 庚子日

例7 31個位數為1,天干為甲
   31%12=7,  地支為午 → 甲午日

例8 54個位數為4,天干為丁
   54%12=6,  地支為巳 → 丁巳日

三、注意事項
(1) 計算時,如「(88+2)#4 + (4-1)#2」兩者均為先求商數再相加。
(2) 公式中的常數 5 ,別忘了加哦!

四、以西元年為準時
為考慮計算的簡化,以西元2001年起的末兩位數字來計算,
則公式修正成:
(Y*5+Y#4+(M-1)#2+D+53+C)%60,其他不變。

五、林宜學先生的公式

  網友另推薦林宜學先生以西元年份為主的的換算公式,( (Y-1)*5+(Y-1)%4+15+Day )%60,其中Day表該年元旦到該日期的總日數,

《林宜學公式》以1975年10月9日為例
(1) 檢查1975年是否為閏年:
  1975/4=493餘3
(2) 計算該年元旦到該日期的總日數:
  31+28+31+30+31+30+31+31+30+9=282
(3) 計算公式:
  ( (75-1)*5+(75-1)%4+15+282)%60
  =(74*5+74%4+15+282)%60
  =(370+18+15+282)%60=685%60=25-->戊子日

《葉柏賢公式》
以1975年10月9日為例,1975年為民國64年,
例:民國64年10月9日,
(1) 查表:
  M=10→ C=31
(2) 計算公式:
  (64*5 + (64+2)#4 + (10-1)#2 + 9+5+31 )%60
  =(320+16+4+9+5+31)%60 =385%60 =25(餘數)

《柏賢自評》
  柏賢的公式所整理的查表雖然麻煩,但是有規律、很容易記,而且也適合用試算表來計算,或寫成電腦程式也可以。但林宜學先生的公式形式外表比較簡單,而且檢查閏年及求日期數也只用到簡單數學加法,非常適合手算,柏賢推薦!

半夜了!意識恍惚、精神不濟,網友幫忙一下,看看全文有沒有錯,順便貼幾個例子吧!謝謝!如果沒有,也貼上來確定一下!謝謝!

昏昏欲睡中,不知所云:
「其為人也,勤古籍、貪書蠹...
 食而不化竟不能斷...
 竊比於易之散文者也...   」

 Z Z Z Z z z ....

        2000/11/03 AM 01:34
貼文者 : : adamyeh

大陸網友的:根据公历日期計算当日干支 - 2002-05-12 22:46:06

Re:日期換算干支
>>「乘五除四九加日,
>> 双月間隔三十天。
>> 一二自加整少一,
>> 三五七八十尾前。」(全文另貼)
柏賢註:全文重貼如下,弄懂的網友麻煩講解一下!

根据公历日期計算当日干支:

一、口訣:
「乘五除四九加日,双月間隔三十天。
 一二自加整少一,三五七八十尾前。」

二、舉例說明:

例一:1996年1月16日

(96×5+96÷4+9+16)÷60=8余49,49即為六十甲子序数。9对應天干壬,49除12余1对應地支子,对應干支為“壬子”。

例二:1997年2月16日

(97×5+97÷4+9+16+30+2)÷60=9余26,26即為六十甲子序数。6对應天干己,26除12余2对應地支丑,对應干支為“己丑”。

例三:1998年3月16日

(98×5+98÷4+9+16)÷60=8余59,对應干支為“壬戌”。

例四:1999年4月16日

(99×5+99÷4+9+16+30+1)÷60=9余35,对應干支為“戊戌”。

例五:2000年7月16日

(100×5+100÷4+9+16+2)÷60=9余12,对應干支為“乙亥”。

例六:20001年10月16日

(101×5+101÷4+9+16+4+30)÷60=9余49,对應干支為“壬子”。

三、注解:

第三句中的“整少一”,为能被4整除之年一二月份比其他三年都要少加一;第四句反映的是大月規律,即8月加3、11月加5,依此类推)。
貼文者 : : 近道

Re: 有關西曆轉中國干支的手算公式 - 2002-05-13 00:11:30


舊文重貼:因干支並不代表農曆,只是中國紀日法,因此題目要改改.

舊文:
原命題是陰陽曆換算捷法,討論的是陽曆求日干支法,本人試就後者提供較完整的解答.

一.儒略周日:若知每年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論。

貼文者 : : 近道

Re: 有關西曆轉中國干支的手算公式 - 2002-05-13 01:08:55

西曆干支換算表 近道

1.表一.世紀年基數表

甲.西元後D.C.

第01世紀0001-0100...格勒哥里曆15,儒略曆13
第02世紀0101-0200.............59,......58
第03世紀0201-0300.............43,......43
第04世紀0301-0400.............27,......28
第05世紀0401-0500.............12,......13
第06世紀0501-0600.............56,......58
第07世紀0601-0700.............40,......43
第08世紀0701-0800.............24,......28
第09世紀0801-0900.............09,......13
第10世紀0901-1000.............53,......58
第11世紀1001-1100.............37,......43
第12世紀1101-1200.............21,......28
第13世紀1201-1300.............06,......13
第14世紀1301-1400.............50,......58
第15世紀1401-1500.............34,......43
第16世紀1501-1600...格勒哥里曆18,儒略曆28
第17世紀1601-1700.............03
第18世紀1701-1800.............47
第19世紀1801-1900.............31
第20世紀1901-2000.............15
第21世紀2001-2100.............00
第22世紀2101-2200.............44
第23世紀2201-2300.............28
第24世紀2301-2400.............12
第25世紀2401-2500...格勒哥里曆57

乙.西元前B.C.

第01世紀0001-0100...格勒哥里曆30,儒略曆28
第02世紀0101-0200.............46,......43
第03世紀0201-0300.............02,......58
第04世紀0301-0400.............18,......13
第05世紀0401-0500.............33,......28
第06世紀0501-0600.............49,......43
第07世紀0601-0700.............05,......58
第08世紀0701-0800.............21,......13
第09世紀0801-0900.............36,......28
第10世紀0901-1000.............52,......43
第11世紀1001-1100.............08,......58
第12世紀1101-1200.............24,......13
第13世紀1201-1300...格勒哥里曆39,儒略曆28
第14世紀1301-1400.............55,......43
第15世紀1401-1500.............11,......58
第16世紀1501-1600.............27,......13
第17世紀1601-1700.............42,......28
第18世紀1701-1800.............58,......43
第19世紀1801-1900.............14,......58
第20世紀1901-2000.............30,......13
第21世紀2001-2100.............45,......28
第22世紀2101-2200.............01,......43
第23世紀2201-2300.............17,......58
第24世紀2301-2400.............33,......13
第25世紀2401-2500...格勒哥里曆48,儒略曆28


2.表二.十年基數表

格勒哥里曆與儒略曆通用(閏年判斷各依其曆法規定)
年之個位數為0時,須用減10年之值,世紀年00用90年之值.

00年....西元後....0..,......西元前52.5
10年.............52.5,.............0
20年.............45..,.............7.5
30年.............37.5,............15
40年.............30..,............22.5
50年.............22.5,............30
60年.............15..,............37.5
70年..............7.5,............45
80年..............0..,............52.5
90年....西元後...52.5,......西元前.0

3.表三.年基數表

1年......西元後.....0..,......西元前....47
2年.................5..,................42
3年................10.5,................36.5
4年................15.5,................31.5
5年................21..,................26
6年................26..,................21
7年................31.5,................15.5
8年................36.5,................10.5
9年................42..,.................5
10年.....西元後....47..,......西元前.....0

30年以表二.十年20及表三.年10合計,其他類推.
最終結果,如有0.5小數點則不計.



4.表四.月基數表

01月......平年00,......閏年00
02月......平年31,......閏年31
03月......平年-1,......閏年00
04月......平年30,......閏年31
05月......平年00,......閏年01
06月......平年31,......閏年32
07月......平年01,......閏年02
08月......平年32,......閏年33
09月......平年03,......閏年04
10月......平年33,......閏年34
11月......平年04,......閏年05
12月......平年34,......閏年35

日干支=(世紀年基數+十年基數+年基數+月基數+日期)/60取餘數

閏年判別:
1.格里曆西元後凡4可整除之年為閏年,但100可整除而400不可整除者為平年.
西元前如需算格里曆,則以年數減1,凡4可整除者為閏年,但100可整除而400不
可整除者為平年.

2.儒略曆西元後凡4可整除之年為閏年,其餘皆為平年.西元前年數除以4餘數1
為閏年,其餘為平年.

例1.西元前544年5月25日(儒略曆)
日干支=43+22.5+31.5+0+25=122 ->2乙丑

例2.西元前104年2月22日(儒略曆)
日干支=43+52.5+31.5+31+22=180 ->60癸亥

例3.西元7年8月29日(儒略曆)
日干支=13+0+31.5+32+29=105 ->45戊申

例4.西元622年7月15日(儒略曆)
日干支=43+45+5+1+15=109 ->49壬子

例5.西元1781年4月1日(格里曆)
日干支=47+0+0+30+1=78 ->18辛巳

例6.西元1957年3月22日(格里曆)
日干支=15+22.5+31.5-1+22=90 ->30癸巳

例7.西元前552年10月9日(儒略曆)大陸學者考證孔子生辰
日干支=43+30+42+33+9=157 ->37庚子

例8.西元前551年9月28日(格里曆)台灣學者考證孔子生辰
日干支=49+30+47+3+28=157 ->37庚子

例9.西元1582年10月15日(格里曆)
日干支=18+0+5+33+15=71 ->11甲戌

例10.西元1582年10月5日(儒略曆)
日干支=28+5+33+5=71 ->11甲戌

例11.西元2001年9月15日(格里曆)
日干支=0+0+0+3+15=18辛巳

例12.西元1960年12月1日(格里曆)
日干支=15+22.5+47+35+1=120 ->60癸亥

本文如有錯誤之處,歡迎指正.
貼文者 : : 小凱哥

Re: 有關西曆轉中國干支的手算公式 - 2002-05-13 01:09:34

呵呵 !

真是太感動了,原來大家都曾花過時間整理過這些資料嘛 ^_^

有了這些資料對於有心研究者真的省了很大的功夫.

真是功德無量啊!

無中置閏法可靠嗎?
http://home.kimo.com.tw/shpao5824/leap_mon.htm



補充一個儒略日的資料,雖然公式裡沒用上,不過天文計算和歷史研究也少
不了要知道一下

儒略日(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年之羅馬象徵週期。

  如果要在地球上共同使用一個曆法計日來記載古今中外的事情,
使用儒略日當作時間標準是相當不錯的,每天的時刻都可以換算成儒略日,
因此在表達天體觀測現象的時間發生點、天文計算、歷史事件或在國際論文
裡也常用儒略日來計日。但是要留心儒略日的一天是「由中午到中午」,
與一般從午夜到午夜的習慣不同。在天文年鑑或歷史研究網站中都可以找到
對應的儒略日,例如臺北市立天文台每年發行的「天文年鑑」上,有每天的
儒略日,很容易查表對照。

貼文者 : : 近道

Re: 有關西曆轉中國干支的手算公式 - 2002-05-13 05:14:37

轉貼文章,簡體字翻成的,對不起,以前沒有將網址留下,若干圖面也漏掉了,容後找到再補.

參考網站
http://vm.rdb.nthu.edu.tw/ylh/


中國農曆置閏法則考釋

黃一農

新竹清華大學歷史研究所

一、前言

雖然格勒哥里曆(Gregorian Calendar)是目前世界上大多數國家官方行用的曆法,但總數多達十幾億人口的各華人社會,每年仍兼用所謂的農曆。有趣的是,一般人都以為目前所行用的農曆,應是依據傳統方式編製出的,其實,現今農曆中定義節氣和安排閏月的規則,是由德國籍耶穌會士湯若望(Johann Adam Schall von Bell; 1592-1666)在清初制定的,而其內容與我國的傳統方法有相當程度的差異。

對於此一傳承逾兩千年歷史的農曆,目前坊間竟然少有書籍能精確說明其置閏法則和演變歷程,對不同置閏法的優缺點,也不見一深入的析探,筆者在下文中即嘗試就此課題做一較有系統的討論。

二、傳統農曆的置閏法則

我國傳統的農曆為陰陽合曆,希望能同時對月亮和太陽在天空中的運動有所掌握,其中定義月和日的部分,屬於陰曆;而定義年、季節和節氣的部分,則屬陽曆。由於月亮從朔到朔或從望到望的週期(朔望月;Lunar Month),平均為29.5306日,不是一個整數值,故農曆中為了使用上的方便,就把一個月的長度折衷分為兩類:大月30日,小月29日。這樣,即可透過大月和小月的相互彌補,使每月的平均長度接近朔望月。

至於太陽在黃道上的運動,從冬至到冬至的平均週期(回歸年;Tropical Year)是365.2422日,這個數目比十二個朔望月的總日數多,但卻又少於十三個朔望月,故農曆定義一年為十二個月。然而十二個完整的月(如果大、小月參半的話)約為354天,較一回歸年少了11天左右。如果讓陽曆和陰曆依此一情形各自排列下去,那麼就可能出現在夏季過新年等「不合常理」的狀況。唐代司馬貞在《史記索隱》中有言:

若三年不置閏,則正月為二月。九年差三月,則以春為夏。十七年差六月,則四時皆反。

即清楚說明置閏的必要。

為使四時與月序維持固定,並令陰曆某月某日對應於陽曆的日序(指在冬至到冬至的週期中的排列位置)亦不致愈差愈大,古人嘗試要找出一最小的(n, m)整數組合,令

n x 回歸年 = m x 朔望月,

如此即可透過所謂「置閏」的安排,令陽曆與陰曆之間的對應,在n年之後重新又回到原點。

經細算之後,曆家發現(n, m) = (19, 235)是一個相當好的近似值,此一數值最早出現的時間不詳,但至少在漢武帝太初元年(104 B.C.)所制定的三統曆中,即已定義閏法n=19, 章月m=235。由於在19個回歸年當中,原先包含有228 (=19x12)個農曆月名,此較235個朔望月少了7個月,故如果我們在19年中加入7個額外的月(此即「閏月」),即可使農曆中陰曆與陽曆的對應較為和諧。亦即,我們不僅可從農曆每月的日序中了解月相(如初一是無月的夜晚,十五月圓),也可以同時對季節時令有所掌握。

由於兩冬至之間(含冬至所在之日)僅可能包含十二個或十三個朔日,且古人將冬至所在之月均固定為十一月(此即所謂的「天正冬至十一月」),故在兩冬至之間包含十二個朔日的情形,我們即可依照十二月、正月、二月……十一月的順序依次排列,但若包含十三個朔日時,我們即須從此十三個月當中擇一置閏。而在前文所提及的十九個回歸年中,就有九次會出現在兩冬至間落入十三個朔日的情形,這些即為應置閏之年。

那麼農曆的閏月究竟是怎樣安插的呢?這完全是人為的規定,且歷代的方法常不盡相同。如秦代以前,往往放在一年的末尾,叫做「十三月」,秦及漢初,因用顓頊曆(以十月為歲首)則放在九月之後,稱做「後九月」或僅簡稱「閏月」,此故,唐顏師古(581-645)在《漢書注》中即嘗謂:

蓋秦之曆法,應置閏者總致之於歲末。觀其此意,當取《左傳》所謂「歸餘於終」耳。何以明之?據《漢書‧表》及《史記》,漢未改秦曆之前,迄至高后、文帝,屢書後九月,是知故然。

直到漢武帝行用三統曆之後,才規定「朔不得中,是謂閏月」,此處的「中」,乃指中氣,也就是說在無中氣之月置閏。

由於兩冬至之間所包含的朔日數通常為十二,故古人將一回歸年平分為十二氣,兩氣之間固定相隔30.4369 (=365.2422/12)日,依序稱之為正月中雨水、二月中春分、三月中穀雨、四月中小滿、五月中夏至、六月中大暑、七月中處暑、八月中秋分、九月中霜降、十月中小雪、十一月中冬至和十二月中大寒,如此各朔日所定義之月即會與十二氣出現一對一對應,而或由於此十二氣分別落於十二月之中,故名之為中氣。在傳統農曆中,每月所對應的中氣一直保持固定,此故《左傳》中有云:「舉正於中」,而《漢書‧律曆志》中亦稱:「中必在正數之月」,如含穀雨的月份即必須為三月,穀雨亦因此被稱作「三月中(氣)」。

但當兩冬至之間包含十三個朔日時,由於其間仍然只有十二個中氣,故某一朔日所定義之月將無中氣出現,此因兩氣之間相隔30.4369日,較農曆大月的30日尚多,故當相鄰兩氣恰分別落在前一朔日之前和後一朔日之後,即會出現此一情形,曆家於是在該無中氣之月置閏,如前一月為八月,此一無中氣之月就稱作閏八月。

中氣的定義可以說相當於陽曆的月,既然它固定落入陰曆的十二個月當中,故古人又在兩中氣的平分點上定義所謂的節氣,以標明陽曆月的起始點,並分別命名為正月節立春、二月節驚蟄、三月節清明、四月節立夏、五月節芒種、六月節小暑、七月節立秋、八月節白露、九月節寒露、十月節立冬、十一月節大雪和十二月節小寒,其中「節氣」一詞的「節」字,即取竹節為端點之意。

在傳統的選擇術中,每月並不起自朔日,而是從對應的節氣起算,如五月即從芒種日起算至小暑之前一日。至於各月節的位置,雖然常見落在陰曆當月的前半月,但亦有一半的機會可能出現在前一個月的後半月,如以芒種為例,它就可能出現在陰曆的四或五月。

總結前言,我國在明代以前的曆法乃將一回歸年從冬至開始等分成二十四份(此法稱為平氣法),此即所謂的二十四氣(俗稱二十四節氣),其中包含十二個中氣和十二個節氣,交插排列。古人為方便記誦,把從正月節立春開始的二十四氣依序取字,編成下面歌訣:「春雨驚春清穀天,夏滿芒夏暑相連,秋處露秋寒霜降,冬雪雪冬小大寒」。在傳統農曆中,每個月頂多可有一個節氣和一個中氣,如若某一個月內出現僅有節氣而無中氣的情形,古人即將這個月訂為閏月。

雖然我們對傳統的置閏法則已有清楚了解,理論上,我們可以透過正史曆志中的材料,回推得歷年置閏的月份,但實際上我們仍無法完全依靠回推而還原歷年所有行用的閏月,其原因有下列幾種可能:

(一)曆術亡佚

如自宋代劉羲叟(1015-1058)以降的學者,都是以麟德曆來推步唐儀鳳年間的曆日,然而經筆者比對一些文獻或碑刻上的記載,發現儀鳳三年(678)的朔日干支竟然有數月與推算不合,且當年實置閏十月,而推步所得卻為閏十一月,故該年很可能使用的是一不知名之曆。

(二)為避俗忌而改閏

如古人以正旦(及正月朔日)日食不祥,故唐玄宗時即為避免此一情形,而將閏月挪前,致使日食發生的日期,從原先的開元十三年正月朔改成了十二年閏十二月朔。但是此一為避忌而改閏的作法,並未被所有朝代所取法,如北宋仁宗寶元元年(1038),權知司天少監楊惟德等嘗上言:「來歲己卯(按:寶元二年)閏十二月,則庚辰歲(按:康定元年)正月朔日當食。請移閏於庚辰歲,則日食在前正月之晦」,亦即建議改閏並將日食安排在正月晦日,但仁宗以「閏所以正天時而授民事,其可曲避乎」,不許所請。嘉祐二年(1057)四月,司天監又上言:「據崇天曆,己亥年(按:嘉祐四年)日當食正月朔,乞定戊戌年(按:嘉祐三年)十二月為閏以避之」,仁宗亦不許。

(三)為塑造吉象而改閏

如武周萬歲通天二年(697)七月,武則天為營造出她授命於天的假象,乃下詔稱曆官所推當年各月的合朔時刻與天象不合,故需將原先所推翌年臘月置閏的結果,改成當年十月置閏,並硬將冬至繫於翌年的正月甲子朔,如此造成節氣、月序、干支與日序的起點同日交會的罕見情形,武則天於是以此為祥瑞,特地下詔改元聖曆以應此吉象。但事實上此詔所提及的理由均為莫須有,經筆者以麟德術推算當時的氣朔,並比對以現代天文知識回推得的結果之後,發覺通天二年各月的合朔干支均與實際天象符合。

(四)推曆有誤

如五代時,敦煌地區的統治者名義上雖多領受中土之官,但其行政則仍自主,亦不曾領用中朝之曆。由於天文曆算的知識往往因受中央政府的箝制而不普及,故當地官員在編曆之初,即出現一些訛誤,如在翟奉達所撰的同光二年(924)曆日中,即將正月記作四綠土月,事實上,正月的月九宮圖根本不可能出現以四綠為中宮的情形。又,在翟氏編纂的同光四年曆中,出現正月節立春,而無正月中雨水,但翟氏卻並未因無中氣而置閏,此與漢武帝行用三統曆以來的置閏傳統迥異。稍後,當這些官員日益熟稔治曆的工作後,類似的情形即不復出現。

經分析藤枝晃所蒐集得的敦煌文書中的紀日資料後,知大部分的敦煌曆均與中原曆稍差。在吐蕃統治期間,差異尤大,如兩曆置閏有差至三個月者(其中全同者僅兩例,差一月者有二,差兩月者有四,差三月者有一,差兩月以上者有一),此或因敦煌當地曆家長期不曾接觸到唐曆所致。逐蕃之後,情形即大獲改善,在二十幾條可用來推求置閏月份的資料中,幾無一與中原曆的閏月相差超過一個月者。



三、西洋新法的置閏法則

新法乃以「定氣法」來計算節氣,亦即將太陽在黃道上的運行軌道,自春分(黃經為0﹛^起每15〝w義一氣。

平氣與定氣原為兩不同的定義方式,一便於計算,一較易描述出太陽在黃道上的位置,並無一正一誤之分,但新法派則利用傳統以春、秋兩分為晝夜平分的說法,來攻擊舊法所用平氣法的「訛誤」。如李天經強調:「顧名思義,分者,黃、赤二道相交之點,太陽行至此點,晝夜之時刻各等」,並舉崇禎九年為例:當年舊法推二月十六日春分,但卻在十四日下註「晝五十刻,夜五十刻」,而十四日恰為新法所推的春分。新法派的批判確實捉到舊法派的弱點,然古代以春、秋兩分乃晝夜等長的說法,或源自二十四氣出現之前,曆家在稍後雖發展出以平氣法定義的二十四氣,但仍將最接近的兩氣依照舊名取作春分和秋分,然而此一春(秋)分已較晝夜等長之日晚(早)了幾近兩天。

在李天經強調應以春、秋兩分來驗證節氣準確與否的要求下,禮部奉旨於二月十四日由相關主管官員率同使用新、舊法的天文家進行公開測驗,之前兩造並商議得到「春、秋分者,乃黃、赤二道相交之點」的共識,結果測得十四日午正的太陽高度為50?',十五日午正為50?3',十六日午正為50?7'。由於北京地區所見北極的出地高度為39?5'(此即北京之緯度),而春分日太陽正當赤道上,故據圖一中所示,太陽在春分的地平高度∠EOH應為50?'(即90●醢[測者的緯度),此值乃以地心為基點,如對北京的觀測者而言,太陽的地平高度∠EBG應較∠EOH略減,李天經以此一修正值為2',亦即∠EBG=50?',此與十四日午正在北京所測得的太陽高度仍低5',李天經對此一差值的解釋為:因午正在春分(卯正二刻五分)之後共二十一刻五(筆者按:應為十)分,而是時太陽每日約增高緯度24' 弱,故從春分至午正時已行5' 餘。

其實,據筆者細推(詳見附錄一),∠EBG與∠EOH之間的差值,在春分時僅為0.09',遠小於李天經所宣稱的2',而春分前後太陽每日約增高緯度24' ●。在定氣法之下,春分確如新法所推在二月十四日,但由前述的敘述,知李天經在解釋觀測數據時,顯然有穿鑿湊數之嫌。

同年八月二十三日至二十五日,禮部再度督同相關人員進行太陽高度的觀測,又得到舊法所推秋分先天兩日的結論,李天經於是疏稱:

該監堂屬各官,初不聞別拈一語相商,亦不聞復出一語相駁,諒亦輸服於理與數之確有証據,而自知其不得不然者。

禮部因此歸結稱新法在此次測驗的結果是「確乎其不可易矣」,但禮部並未就此主張改行新法,僅建議曰:「此後步推節候,須求印證。俟臣部曉曆司官畢拱辰到任之後,公同詳加測算,務期悉合天儀,不忒時敘」。

由前述崇禎九年測春、秋兩分一事,可知使用舊法的欽天監官並無能掌握定義節氣的精義,以致被新法派牽著鼻子走。而新法派為突出新、舊法的異同,還曾上〈節氣圖〉,其說明有云:

內規。

強調「論節氣有日度、天度之異」,其實日度和天度分別為中、西對圓周的定義,中法以一周天為約三百六十五又四分之一度,日行一度,而西法則以圓周為360﹛A新法派在採用定氣法時,實可定義每365.25/24度為一氣,而不必引入日度和天度兩名詞以增加混淆。

崇禎十三年十一月初九日冬至,舊法推在辰時,新法則推在午時,舊法且預推當日正午的日景長為一丈五尺九寸餘,然屆時用圭表所測得的景長卻為一丈六尺七寸五分。又,當日以象限儀所測午正的日高為26?3',因冬至時太陽在赤道南 23?2',亦即南回歸線上,故太陽以地心為基點的地平高度∠SOH = 90?- ∠FOP - ∠EOS = 26?3',如對北京的觀測者而言,太陽的地平高度∠SBG應較∠SOH略減2',亦即為26?1',此較午正所測的日高少2',也就是說冬至所在的時刻應較午正稍早,約在午初二刻。

在《大統曆》中以40.949375度為北京北極的出地度,因一周天在此曆中被定義為365.2575度,故北京的緯度即相當於40?2',此與新法派所測得的39?5'相差27'。





圖一:北京所見太陽之位置圖





崇禎十四年十二月,光祿寺卿、仍管曆務的李天經上言:

大統置閏,但論月無中氣,新法尤視合朔後先。今所進十五年新曆,其十月、十二月中氣,適交次月合朔時刻之前,所以月內雖無中氣,而實非閏月。蓋氣在朔前,則此氣尚屬前月之晦也。至十六年第二月止有驚蟄一節,而春分中氣,交第三月合朔之後,則第二月為閏正月,第三月為二月無疑。

時帝已深知西法之密。迨十六年三月乙丑朔日食,測又獨驗。八月,詔西法果密,即改為大統曆法,通行天下。未幾國變,竟未施行。本朝用為時憲曆

此一以平氣法安排二十四氣且以「無中(氣)置閏」為原則的制曆方式,在中國傳用逾千年,直到滿人入主中原時,才受到嚴重挑戰。順治元年,奉旨制定曆法的湯若望,為突顯新法較舊法優越,就更改傳統的平氣法為定氣法,稱「求真節氣:舊法平節氣,非真節氣,今改定」,亦即將太陽在黃道上的周天運動,依度數等分成二十四份,亦即太陽從冬至點起,每在黃道上移動15度時,即定為一節氣的日期。

但由於太陽的視運動遲速不均(地球繞太陽的公轉軌道為橢圓形),因此各節氣間相隔的日數就不相等。以致有可能出現一月之中有三氣,而閏正月和閏十二月將不可能出現的情形,偶而也會因此出現一年之內有兩個無中氣之月的現象。湯若望在西洋新法中只得勉強規定:

求閏月,以前後兩年有冬至之月為準。中積十三月者,以無中氣之月,從前月置閏。一歲中兩無中氣者,置在前無中氣之月為閏。

由於兩個冬至之間(含冬至所在之日),通常包含十二個朔日,但偶亦可能出現十三個朔日,因冬至均固定為十一月,故我們必須在此十三個月中置一閏,一般說來,在這段期間多只有一個月無中氣,即依前月置閏,但有時在此十三個月當中,間亦會出現兩無中氣之月的情形,依照湯若望的定義,即以頭一個無中氣之月為閏。

:「舊法用平節氣置閏,非也,改用太陽所躔天度以定節氣」。

湯若望所使用的定氣和置閏法,因違反傳統且較為複雜,在當時引起了社會激烈的反彈。雖然我國在清朝以前的曆法,都是使用平氣法,然而早在西元第六世紀,避亂海島的天文家張子信,在進行了三十多年的天文觀測後,就發現了太陽在黃道上運行不均勻的事實。而隋唐以後的天文家,在推算天象時,更已開始應用了定氣法,但在編製農曆時,則仍一直是採用平氣法C

為何中國古代的天文家早知推算定氣,卻又在農曆中採用平氣?這主要是因平氣可使置閏的法則簡易明瞭所致,且在此法之下,因兩節氣或兩中氣間的時距是固定的,故術家或一般民眾都可以透過朗朗上口的歌訣,方便地推得各氣的時刻。



五、閏八月的迷思

由於鄭浪平先生的暢銷書《一九九五‧閏八月─中共武力犯台白皮書》中,指稱近百年來,每逢閏八月之年,即有大不吉的事件發生,在海峽兩岸關係日趨緊張的情形下,許多社會大眾因此對今年出現的閏八月,懷有些許忐忑不安的心情。經筆者以電腦查索臺北中央研究院所製作的「二十五史全文資料庫」後,並不見正史中有任何以閏八月為不祥的說法。下文則從史料出發,對此一俗忌的起源以及歷代對閏八月的看法,試作考證。

嘉慶十七年(1812)春,有臺灣人高媽達因「妖言惑眾」,為淡水同知查崇華捕獲,經審訊後,得知與白蓮教淵源極深的八卦教(又名白陽教或天理教),以林清、林文成等人為教首,將在次年的閏八月十五日於京師舉事,屆時各地的徒眾亦將響應。崇華於是上奏,但主政者卻不信會有此事,僅以傳布邪教的罪名誅殺高媽達。

林清等人是在十六年夏即決定起事之期的,其選擇的理由乃與曆法相關,因八卦教的天書中有「八月中秋,中秋八月,黃花滿地開放」句,為與讖言中所提及的兩次中秋相合,故他們根據官印《萬年書》中所預推的曆表,選定於十八年的閏八月十五日,在各省同時舉事。

嘉慶十六年秋,有彗星見於紫微垣,由於彗星的出現,在星占學上可以解釋成有除舊佈新之象,且紫微垣代表皇帝,而彗星又主兵象,所以更被教眾視為一好預兆,加深其起事的信心。

八卦教徒又聲言彌勒佛有青洋、紅洋和白洋(洋字亦作陽)三劫,清朝屬紅洋劫,而嘉慶十八年的十月因有三氣(霜降、立冬和小雪),故該年應是白洋當興、彌勒降生之年,林清並宣稱己為太白金星下凡,故旗幟皆尚白。其實,滿人入關後,大多數的時間均採用德國籍耶穌會士湯若望(Adam Schall von Bell, 1591-1666)所發明的定氣法,以決定節氣和閏月的時間,而在此法之下,類似嘉慶十八年有一月三氣的情形,並不罕見,如順治三年十一月、順治十八年十一月、康熙四年十月、康熙二十三年十一月、乾隆四十年十一月、嘉慶三年十一月等月即然。

前述所提及的《萬年書》,乃為一由欽天監推算編輯的官方出版物,原名《萬年曆》,後因避乾隆皇帝弘曆之諱而改名,其內容主要記各年的月盡大小、朔日干支、置閏月份以及節氣時刻。第一本《萬年書》起自清太祖天命九年(滿人入關前的第一個甲子年),迄於乾隆一百年。乾隆五十二年,又續修至乾隆二百年。此後,凡新帝即位,欽天監都要續修至新年號的第二百年。時憲書中有關朔閏的資料,原多與《萬年書》所記無太大出入。

不料,當嘉慶十八年的時憲書於十七年十月初一日頒下之後,教眾們發現十八年竟然未置閏,原來欽天監已於先前奏請改在十九年閏二月。在舉事日期引發極端惶惑的情形下,林清和李文成等人於十七年十一月重新會面,商定在明年「約同教之人定期四五月三五日一齊起事」,其中所謂的「四五月三五日」即暗含九(四、五相加)月十五(三、五相乘)日之期,該日也就是《萬年書》中原先預推的閏八月十五日,此因教中之人附會稱清廷因忌諱閏八月,所以欽天監才會有奏改的舉動。

欽天監當時所以請求改閏的緣故,是因如在嘉慶十八年八月置閏的話,將使該年的冬至落在十月三十日,而非通常應在的十一月,此一狀況為「向來所未有」,故建議十八年不置閏,但將稍晚亦無中氣的十九年三月,改為閏二月。欽天監在奉旨對此事再詳細通查之後,回奏稱:

溯查康熙十九年、五十七年,俱閏八月,是年冬至仍在十一月,與郊祀、節氣均相符合。今嘉慶十八年閏八月,冬至在十月內,則南郊大祀不在仲冬之月,而次年上丁、上戊,又皆在正月,不在仲春之月,且驚蟄、春分皆在正月,亦覺較早,若改為十九年閏二月,則與一切祭祀、節氣,均屬相符。復將以後推算至二百年,其每年節氣以及置閏之月,俱與時憲無訛。

清朝自崇德五年起,即定「每年二月、八月上丁日」祭祀孔子,上丁也就是該月上旬的丁日(每旬僅可能有一丁日)。而在「每歲春秋仲月上戊日」,則祭社稷,時在二、八兩月上旬的戊日。此一儀禮流傳甚早,但有的朝代選在上戊祭武成王(指與周公共同輔佐周成王的呂尚)。

欽天監在前引文中之所以稱若於嘉慶十八年置閏的話,次年的上丁和上戊,皆會落在正月,乃因當年的春分將在正月三十日,而包含春分之月通常被視為仲春之月,故十九年春季的上丁和上戊,將分別出現於正月的五日和六日,此與兩者均在二月的慣例不符。在考量冬至、上丁和上戊通常應在的月份後,嘉慶皇帝決定改閏十九年二月。如此,冬至即變成在十一月三十日,而上丁和上戊則落於十九年的二月五日和六日。欽天監當時還往後推算至嘉慶第二百年(亦即1995年),發現其它應閏八月之年,均不會發生類此冬至未落在十一月的特殊情形。或因欽天監改閏所根據的理由,涉及曆法上的技術層面,以致一般人和大多數的學者均少有知曉或理解者。

雖然八卦教擇定於嘉慶十八年的九月十五日起事,但在河南滑縣趕造兵器的李文成,卻因事機不密,於當年的九月初六日,遭知縣強克捷逮捕入獄。初九日,其同黨數千人攻陷滑縣,救出李文成,並將強克捷及其家屬俱殺害。

九月十五日,林清在部分內監的策應下,如期率眾闖入紫禁城。當時仁宗正在從木蘭圍場回京途中。皇次子旻寧(即後來的道光帝宣宗)聞警,下令緊閉宮門,並曾親自用槍擊斃兩人。在健銳營和火器營的包圍下,叛民盡遭捕斬。旻寧因功封為智親王,而其所用之槍,亦獲皇帝賜號為「威烈」。稍後,李文成也在輝縣西北兵敗自焚而死。

雖然八卦教此次起事(史稱「癸酉之變」)以失敗告終,但閏八月不祥的說法卻流傳下來,如知江西萍鄉縣事的顧家相,即稱其幼時就已習聞此說。民間甚至訛稱清初二百年來,都不曾在八月置閏,因每逢應閏八月,欽天監的天文官就會請旨更改。光緒二十六年因又逢應閏八月,此故前一年民間即譁傳欽天監已奏請改閏。事實上,如果我們查閱史書的話,就可發覺清初最早的兩次閏八月(康熙十九年和五十七年),均不曾有特意改閏之舉。

咸豐元年(1851),應閏八月,欽天監因受流俗的影響,曾上奏請旨,文宗於是請教其師傅杜受田(1787-1852)的意見,杜氏以為這純是無稽之言,遂不改。事實上,當年即使閏八月,冬至也還落在十一月,故原無改閏的必要。同治元年(1862),也因此是閏八月。

光緒二十六年(1900),再逢閏八月。由於當年恰發生義和團事件,七月,八國聯軍攻陷北京,閏八月,又有鄭士良等革命黨人在惠州起義,許多人因此將這一動盪的局面附會成是閏八月所致,民心更加惶惶不安,當時一些有識之士就起而撰文釐清此一流言。

顧家相於當年所撰的〈閏八月無關吉凶辨〉一文,大概是近兩百年來討論閏八月最翔實的一篇文章,他在從曆法的角度理清嘉慶十八年改閏的原因之後,歸結曰:「不利閏八月,乃草野流傳之謬說」,並稱:

考國朝定鼎以來二百五十餘年,所謂閏八月者,嘉慶癸酉已改不計,此外已有四次:康熙庚申,三藩將次勘定,軍務日有起色;康熙戊戌,海宇太平;咸豐辛亥,亦在粵匪起事以後;同治壬戌,則為官軍得手克復安慶之歲,不三載而底定東南。然則所謂閏八月不利者,果安在耶?僕故表而出之……使人人知今年閏八月,在本朝已為第五次,不足為奇,庶幾謠言靜息,人心安謐乎!

顧家相所舉的康熙十九和五十七年兩例,雖然均閏八月,但並不曾發生對清廷不利的大變。事實上,清軍於康熙十九年庚申歲不僅克復成都、保寧、重慶、辰州、貴陽等地,還迫使鄭經敗走臺灣,而康熙五十七年戊戌歲更是「海宇太平」的盛世。但顧家相或為平息謠言,對其它閏八月之年不利的事件,則並未客觀地據實敘述,如洪秀全在咸豐元年辛亥歲登極成立太平天國一事,即未被提及。

以出版《小方壺齋輿地叢鈔》聞名的王錫祺,亦有感於民間流言四起,有倡「本朝忌閏八月」說者,故輯撰《閏八月考》一書。王氏請同鄉龔□將史書中所有的閏八月,均整理出來,並將各年所發生的重大事件亦臚列出,據其統計,自漢武帝太初元年(104 BC)以迄光緒二十六年,共有六十一次閏八月,其中多數並不曾發生重大變故,而「康熙十九年庚申、五十七年戊戌,兩閏八月,一則叛藩逮平,一則環宇清肅。文宗咸豐元年辛亥、穆宗同治元年壬戌,亦閏八月,一則在巨寇猖獗之後,一則居全功戡定之先」,至於光緒二十六年所發生的巨變,王錫祺則認為「非彼蒼好禍,實僉謀不臧」所致!王氏在《閏八月考》的跋文中,歸結稱:「顧列朝星變示警,或應或不應,且人力迴天者,十恆六七」,其對閏八月不利清廷一說的態度,應深受顧家相的影響,王氏在《閏八月考》一書的末尾,即曾將顧氏所撰的〈閏八月無關吉凶辨〉全文引錄。

經由前文的討論,我們可以發現閏八月為凶兆的說法,全為八卦教在「癸酉之變」中所穿鑿附會出的,先前在正史中即因此絲毫未見此一俗忌。如果您還是相信閏八月確實極端不祥,那麼您只要能耐心熬過今年,此後就可以完全否極泰來了,因為從現在起,至少半個世紀之內,均不會再出現閏八月,也就是說,我們大部分的人都應該可以度過一個沒有重大天災人禍的後半生!



六、結語

清朝的欽天監從乾隆二十五年(1760)起,都是依據《御製曆象考成後編》一書推算每年的氣朔。辛亥革命以後,初期仍由中央觀象臺照前朝的方法計算,自民國三年起,才改用較現代的天文理論編製每年的《中華民國曆書》。

目前在台灣,一直是由中央氣象局的天文站代表政府編製農曆的,並成為民間每年所印製大量黃曆和通書的主要根據。至於大陸方面,則由南京紫金山天文臺負責,該台的劉寶琳先生曾主編《新編萬年曆》一書,以現代的天文知識和清朝的定氣規矩,將每年各個朔日和節氣的日期,推算至公元2050年。這本書初印於1984年,在短短不到五年的時間內,就重印了七次,賣了一百多萬本,迄今的總銷售量,恐已超過了兩百萬大關。

但海峽兩岸的農曆編製單位,對置閏的法則,似乎均不曾做過明確的界定,對新舊法的優劣,也不曾理性地加以比較分析。我想許多讀者或許都有興趣知道,在遇到如同公元1813-1814年和2033-2034年的罕見特例時,究竟這些機構將依據那些原則,來決定置閏的月份?又,海峽兩邊的中國社會,有無可能因而安排出不同的閏月?

我們現在所採用計算節氣和決定置閏的方法,其實是湯若望等傳教士在清初為突顯其所用「新法」之新而創制的,規則頗失簡明,結果也過於複雜。由於新、舊法所推得的節氣,頂多相差兩日,對農事並無顯著的影響,況且西方的天文科學中也從未出現節氣或閏月的內容,故我們或許應該慎重考慮將節氣和置閏的定義,重新回歸傳統!而社會上眾多使用黃曆或喜歡術數的朋友們,可能也會很高興使用一本以傳統方式編製而成的農曆吧!


表一:各月所對應之節氣與中氣

表二:新舊法的優缺點比較

 
YLH 1997年12月4日 Version 3.03

下面這個網址,討論到曆與與易乾鑿度的關係,也頗值參考

http://tacocity.com.tw/yini/004.htm

貼文者 : : ziyou

Re: 有關西歷轉農歷干支的手算公式 - 2002-05-14 08:54:33

你好:
謝謝提供此很有用的公式 但不知此公式如何計算民國以前的日期干支

貼文者 : : 姓名通書

Re: 有關西歷轉農歷干支的手算公式 - 2002-05-14 11:32:15

請問:
公元16、、忘記了,其中有直接砍掉十一天,是否有列入考慮範圍。
貼文者 : : 小凱哥

Re: 有關西歷轉農歷干支的手算公式 - 2002-05-14 11:52:45


AdmaYeh大大出國去了,這幾天不會上站.

既然你以知道改曆的故事了,那麼公式就可以自己推導了不是嗎?

為什麼我們研究一個議題一定要把來龍去脈追根究底的搞清楚?
原因就是 給魚吃,不如教你釣魚的方法, 知道方法後當然還得自己
去釣魚才有魚吃啊?

想當然爾,那個公式沒有考慮到那消失的十一天
貼文者 : : adamyeh

Re: 有關西歷轉農歷干支的手算公式 - 2002-05-18 05:36:29

Dear 甲寅:

  這個公式只是方便大家,一時找不著萬年曆時,可以西歷轉農歷干支的手算公式,只要有生之年都準,何樂而不為!

謝謝小凱哥代答!
貼文者 : : 姓名通書

Re: 有關西歷轉農歷干支的手算公式 - 2002-05-18 08:50:32

謝謝!
貼文者 : : 小津

Re: 有關西歷轉農歷干支的手算公式 - 2002-05-18 10:53:58

謝謝
貼文者 : : 小津

Re: 有關西歷轉農歷的問題 - 2004-04-05 14:20:32

Step 1. 先求出太陽曆之冬至點 , 以此月為子月 為計算起始點。
Step 2. 求出往後一年的所有日月合朔日 , 定為每月初一。
Step 3. 以此年所含太陰月的數目判斷置潤與否。
Step 4. 若需置潤,則置潤月於有節無氣之月。
Step 5. 將所有月份從子月開始流水編號。
Step 6. 現在使用寅正,故以寅月為正月,子月為 11 月。
Step 7. 西曆、農民曆之換算,只需查每月初一日即可求得。

舉今年計算實例如下 :
【西元 1998 年 之陰陽合曆計算】

Step 1. 【求冬至點】
解得 1997年12月22日 4時07分07秒

Step 2. 【一年之日月合朔】
丑月 初一 丙午日 1997年12月30日 0時56分50秒 朔 星期二
初一 乙亥日 1998年01月28日 14時01分14秒 朔 星期三
初一 乙巳日 1998年02月27日 1時26分15秒 朔 星期五
初一 甲戌日 1998年03月28日 11時13分56秒 朔 星期六
初一 癸卯日 1998年04月26日 19時41分41秒 朔 星期日
初一 癸酉日 1998年05月26日 3時32分23秒 朔 星期二
初一 壬寅日 1998年06月24日 11時50分21秒 朔 星期三
初一 辛未日 1998年07月23日 21時43分51秒 朔 星期四
初一 辛丑日 1998年08月22日 10時03分06秒 朔 星期六
初一 辛未日 1998年09月21日 1時01分27秒 朔 星期一
初一 庚子日 1998年10月20日 18時09分26秒 朔 星期二
初一 庚午日 1998年11月19日 12時26分55秒 朔 星期四
子月 初一 庚子日 1998年12月19日 6時42分39秒 朔 星期六
初一 己巳日 1999年01月17日 23時46分29秒 朔 星期日

Step 3. 【判斷置潤】
二冬至間有 13 個月,此年需置潤

Step 4. 【置潤】
先計算 24 節氣
冬至 [黃經 270.00000] 1997年12月22日 4時07分07秒
小寒 [黃經 285.00000] 1998年01月05日 21時18分14秒
大寒 [黃經 300.00000] 1998年01月20日 14時46分06秒
立春 [黃經 315.00000] 1998年02月04日 8時56分51秒
雨水 [黃經 330.00000] 1998年02月19日 4時54分53秒
驚蟄 [黃經 345.00000] 1998年03月06日 2時57分14秒
春分 [黃經 -0.00000] 1998年03月21日 3時54分36秒
清明 [黃經 15.00000] 1998年04月05日 7時45分00秒
穀雨 [黃經 30.00000] 1998年04月20日 14時56分50秒
立夏 [黃經 45.00000] 1998年05月06日 1時03分16秒
小滿 [黃經 60.00000] 1998年05月21日 14時05分31秒
芒種 [黃經 75.00000] 1998年06月06日 5時13分29秒
夏至 [黃經 90.00000] 1998年06月21日 22時02分39秒
小暑 [黃經 105.00000] 1998年07月07日 15時30分29秒
大暑 [黃經 120.00000] 1998年07月23日 8時55分24秒
立秋 [黃經 135.00000] 1998年08月08日 1時19分48秒
處暑 [黃經 150.00000] 1998年08月23日 15時58分54秒
白露 [黃經 165.00000] 1998年09月08日 4時15分53秒
秋分 [黃經 180.00000] 1998年09月23日 13時37分12秒
寒露 [黃經 195.00000] 1998年10月08日 19時55分47秒
霜降 [黃經 210.00000] 1998年10月23日 22時58分39秒
立冬 [黃經 225.00000] 1998年11月07日 23時08分26秒
小雪 [黃經 240.00000] 1998年11月22日 20時34分16秒
大雪 [黃經 255.00000] 1998年12月07日 16時01分38秒
冬至 [黃經 270.00000] 1998年12月22日 9時56分32秒
小寒 [黃經 285.00000] 1999年01月06日 3時17分14秒
大寒 [黃經 300.00000] 1999年01月20日 20時37分28秒
立春 [黃經 315.00000] 1999年02月04日 14時57分10秒
雨水 [黃經 330.00000] 1999年02月19日 10時46分56秒

由此解得,潤月在以 1998年06月24日 壬寅日 為初一之月

Step 5. 【十二地支分配】
丑 月 初一 丙午日 1997年12月30日 0時56分50秒 朔 星期二
寅 月 初一 乙亥日 1998年01月28日 14時01分14秒 朔 星期三
卯 月 初一 乙巳日 1998年02月27日 1時26分15秒 朔 星期五
辰 月 初一 甲戌日 1998年03月28日 11時13分56秒 朔 星期六
巳 月 初一 癸卯日 1998年04月26日 19時41分41秒 朔 星期日
午 月 初一 癸酉日 1998年05月26日 3時32分23秒 朔 星期二
潤 月 初一 壬寅日 1998年06月24日 11時50分21秒 朔 星期三
未 月 初一 辛未日 1998年07月23日 21時43分51秒 朔 星期四
申 月 初一 辛丑日 1998年08月22日 10時03分06秒 朔 星期六
酉 月 初一 辛未日 1998年09月21日 1時01分27秒 朔 星期一
戌 月 初一 庚子日 1998年10月20日 18時09分26秒 朔 星期二
亥 月 初一 庚午日 1998年11月19日 12時26分55秒 朔 星期四
子 月 初一 庚子日 1998年12月19日 6時42分39秒 朔 星期六
丑 月 初一 己巳日 1999年01月17日 23時46分29秒 朔 星期日

Step 6. 【使用寅正】
十二月 初一 丙午日 1997年12月30日 0時56分50秒 朔 星期二
正 月 初一 乙亥日 1998年01月28日 14時01分14秒 朔 星期三
二 月 初一 乙巳日 1998年02月27日 1時26分15秒 朔 星期五
三 月 初一 甲戌日 1998年03月28日 11時13分56秒 朔 星期六
四 月 初一 癸卯日 1998年04月26日 19時41分41秒 朔 星期日
五 月 初一 癸酉日 1998年05月26日 3時32分23秒 朔 星期二
潤五 月 初一 壬寅日 1998年06月24日 11時50分21秒 朔 星期三
六 月 初一 辛未日 1998年07月23日 21時43分51秒 朔 星期四
七 月 初一 辛丑日 1998年08月22日 10時03分06秒 朔 星期六
八 月 初一 辛未日 1998年09月21日 1時01分27秒 朔 星期一
九 月 初一 庚子日 1998年10月20日 18時09分26秒 朔 星期二
十 月 初一 庚午日 1998年11月19日 12時26分55秒 朔 星期四
十一月 初一 庚子日 1998年12月19日 6時42分39秒 朔 星期六
十二月 初一 己巳日 1999年01月17日 23時46分29秒 朔 星期日

Step 7. 【換算實例】

【例一: 國曆轉農曆】
以今日為例 1998年09月18日
查 【Step 6.之表】 得 1998年09月18日 位於農民曆七月之中
七月初一為 1998年08月22日 , 相減得 27
故 1998年09月18日為農民曆七月二十八日

【例二: 農曆轉國曆】
農曆八月十五中秋節 , 查 [Step 6.之表] 八月初一為 1998年09月21日
故加 14 得中秋為 1998年10月05日

http://groups.google.com.hk/groups?hl=zh-TW&lr=&ie=UTF-8&oe=UTF-8&threadm=3QXDCN%24jHy%40bbs.cis.nctu.edu.tw&rnum=6&prev=/groups%3Fq%3D%25E8%25A5%25BF%25E6%259B%2586%25E8%25BD%2589%25E8%25BE%25B2%25E6%259B%2586%26ie%3DUTF-8%26oe%3DUTF-8%26hl%3Dzh-TW%26btnG%3DGoogle%2B%25E6%2590%259C%25E5%25B0%258B
貼文者 : : 章容舫

Re: 有關西歷轉農歷的問題 - 2005-05-16 07:38:50

很關鍵的一條:

冬至總是出現在陰曆十一月

我談談編程的思路:

先製作好太陽月亮的軌道計算。

構建一個函數,求得兩者黃經相同的時刻。

今年冬至到明年冬至確定兩個11月

編寫置閏函數

編寫其他細節。

至於高精度節氣計算,關鍵是處理好△T,△T越精確,數據結果就越精確。
我不迷信海軍天文台的數據,那個也是用數學模型來表達,不可能每時每刻都進行實際測量的。

以下是我隨手複製過來的計算的結果,我相信不會比站長的遜色多少:

冬至: 1977年 12月 22日 7时 23分9.98532593250275秒
大寒: 1978年 1月 20日 18时 4分0.98340421915054秒
小寒: 1978年 1月 6日 0时 43分15.23480683565140秒


馬甲好久不用,出來嗮嗮。
貼文者 : : PeakHour

Re: 有關西歷轉農歷的問題 - 2005-05-16 15:26:47

正好我最近也在使用swisseph做一些計算,過一陣子,想把這個功能做成web service。

寫程式的手法也很像,呵呵。我想內差法應該跑不掉吧。

提供我的數據,使用swisseph 1.67版。

1977-12-22 07:23:09.75374
deltaT: 00:00:02.02092

1978-01-06 00:43:14.79707
deltaT: 00:00:02.02265

1978-01-20 18:04:00.74237
deltaT: 00:00:02.02443

1.67版release,就是對deltaT做修正,不過,還是以JPL的數據來計算的。請問,您的deltaT值如何求出?
貼文者 : : 章容舫

Re: 有關西歷轉農歷的問題 - 2005-05-16 17:54:48

答:我的△T參考了北航舘藏一些資料再自行修正的。並請教了從事天文工作的朋友。必要的時候我會公佈這幾年積累的源代碼,與所有熱愛中華古文化的同好分享。7月我要參加青島一個天文愛好者聚會,屆時再請教一些專家朋友。

我想,中國的智商不比外國人差,外國能做的事情中國人經過不懈努力也可以達到。

現成的,國人編寫的《天文星歷庫應用系統》也不會遜色美國海軍天文台的數據。
貼文者 : : PeakHour

Re: 有關西歷轉農歷的問題 - 2005-05-17 15:43:54

高明,內地有研究實力,加上有太空科技預算的挹注,相信可以取得更好成績。

不過我的用途只在占星學,目前來看是足夠了。謝謝您對deltaT的說明,我得去大海撈針尋找尋找囉。雖然我傾向JPL數據,但也希望《天文星歷庫應用系統》可以更勝一籌。