文档库 最新最全的文档下载
当前位置:文档库 › 农历规则与置闰

农历规则与置闰

农历规则与置闰
农历规则与置闰

农历规则与置闰

时间、月相计算以东经120度(中国南京紫金山天文台)为准。

一个朔望月 = 月相由新月循环到新月所经过的时间 = 29.53059日。新月出现的一天是初一日,例如: 本月新月下月新月阴历月长

公历 5月1日13时 5月31日01时 30天公历 5月1日01时 5月30日13时 29天

1年 = 农历正月初一至下一个农历正月初一的时间。 1岁 = 冬至至下一个冬至的时间,约有365日。冬至必定在农历11月(子月)。

凡阴历一个月内只有节气而没有中气,那个月便是上一个月的闰月。

闰月的天数与正常月份的天数一样,为29或30天。

农历作为阴阳历的一种,每月的天数依照月相盈亏而定,一年的时间以12个月为基准。为了合上地球围绕太阳运行周期(1回归年),每隔一定时间要增加一个月,增加的这个月为闰月。因此农历的闰年为13个月。通常19年置7闰,无中气那个月则为闰月。

农历没有第十三月的称谓,闰月按照历法规则,排放在任何一个月过后重复同一个月,重复的这个月为闰月,如四月过后的闰月称为闰四月。

农历有岁和年之区别:一岁指从一个冬至到下一个冬至的时间长度,而一年指从一个正月初一到下一个正月初一的时间长度。注意这二者的长度不同。一月是指从一个朔到下一个朔的长度。如果一岁中包含了12个完整月,则这一岁为闰岁。在闰岁中,第一个无中气月为闰月,相应的这一年为闰年。农历还有一个规则,即冬至必须落在农历11月。

[编辑]为何要十九年置七闰?

阴历一个月为朔望月,阴历一年通常有12朔望月(= 354.36708日),比1回归年短了10.87512日;阴历闰年则有13朔望月(= 383.89767日),比1回归年长了18.65547日。19个回归年的长度为6939.6018日,而19x12+7=235个朔望月(十九年置七闰)的长度为6939.68865日。可见十九年置七闰的规则是为了协调阴历年与回归年日数的差。

因为1阴历年比1回归年少约11日,所以在公历中翌年的农历正月初一比每年的早11天;如果遇上闰年,则推迟约19天。

农历基本上以19年为一周期对应于公历同一时间。如公历的2001年5月27日、1982年5月27日和1963年5月27日这个日子,都是闰四月初五。间中也有例外的例子,比如说公历的1917年4月4日是闰二月十三、1936年4月4日是三月十三、还有1955年4月4日是三月十二。不过,日子的对应也不是相差很远的。

[编辑]置闰产生的问题

在确定某一节气落在哪一月时,只精确到日,而未及到时与分。这一方法称为民用置闰;若精确到时与分,则称历理置闰。中国大陆采用民用置闰。

由于日月运行的复杂关系,民用置闰将会在2033年及2034年导致异常情况。2033岁只有11个完整月,但须设为闰年,置闰11月;同时8月为假闰月,即该月无中气,但却不是闰月。该年的11月,12月均为双中气月。2034岁含12个完整月,但2034年非闰年,因无双中气月,且1月为假闰月。天文学家们的计算显示,如果采用历理置闰,2033岁并无双中气月,因而无须置闰。

民用置闰还能导致不同时区在同一年中的不同置闰,而历理置闰则可以避免这个混乱。

[编辑]公元2033年:不寻常的闰年

因为要遵守冬至必定在农历11月的规则,所以在2033年闰月不是闰7月而是闰11月。因此2033年的农历8月和2034年的农历1月虽然没有中气,却不是闰月。

有关时辰的问题:

中国古时把一天划分为十二个时辰,每个时辰相等於现在的两小时。相传古人根据中国十二生肖中的动物的出没时间来命名各个时辰。

时辰相等於现在的时间配上的动物原因

【子时】北京时间23时至01时鼠鼠在这时间最跃。

【丑时】北京时间01时至03时牛牛在这时候吃完草,准备耕田。

【寅时】北京时间03时至05时虎老虎在此时最猛。

【卯时】北京时间05时至07时兔月亮又称玉兔,在这段时间还在天上。

【辰时】北京时间07时至09时龙相传这是「群龙行雨」的时候

【巳时】北京时间09 时至11时蛇在这时候隐蔽在草丛中

【午时】北京时间11时至13时马这时候太阳最猛烈,相传这时阳气达到极限,阴气将会产生,而马是阴类动物。

【未时】北京时间13时至15时羊羊在这段时间吃草

【申时】北京时间15食至17时猴猴子喜欢在这时候啼叫

【酉时】北京时间17是至19时鸡鸡於傍晚开始归巢

【戌时】北京时间19时至21时狗狗开始守门口

【亥时】北京时间21时至23时猪夜深时分猪正在熟睡

古代计时单位“更”怎样规定的?

古人将夜里的时间还分为更和点

一夜等分为五更,一更也等于现在的二个小时,从晚上七时开始起更,一更指七时至九时,二更指九时至十一时,三更指十一时至次日凌晨一时,四更指一时至三时,五更指三时至五时。

古人把一昼夜分为12个时辰,用12地支表示,每个时辰等于现代的二个小时。古时与现时对照:子时从夜间十一点到次日凌晨一点,丑时从一点到三点,寅时从三点到五点,依此类推,每隔两小时分别为卯时、辰时、巳时、午时、未时、申时、酉时、戌时、亥时。

“更天”前最大的数字是五,是指三时至五时。

公历和农历之间如何转换

公历和农历之间如何转换? 很多人都一直在找换阴阳历的公式。我也尝试过。曾读过「高平子」天文前辈所着「学历散论」了解古历的变更和阴阳历的缺陷。才知道由於月球转动的不稳定不规则,确定无公式可寻。这也是古代中国每百年必改历的原因。 阴历最大的问题是在如何置闰。好像不难,因为阴历基本法则如下: * 月朔日即是初一 * 月以中气得名 * 以包含雨水中气月为正月,即是「寅」月 * 月无中气者为闰月,以前月同名 如果,日月转动循还有规则的话,推演一套阴阳历转换的公式并不难。问题在有时一个太阴月比一个太阳月还要长。如此一个太阴月就有可能包括两个中气。此双中气月後的阴历月名就全部乱掉了,直到下一个「假」闰月後才调整过来。 一般人接触到的阴阳历是民用历法,它是政府颁令的以东经120度计算的历法或称中原标准时间或北京时。如果,我们用不同时区、不同经度为子午线来重新计算阴阳历,民用历法的置闰法则出了很大的问题。不同时区的闰月可能落在不同月。换言之,在一百年内,任何两个时区的闰月顺序模式是会不相同的。 高平子前辈书中提到了「历理置闰法」。如果应用历理置闰法到不同时区,则所有不同时区的闰月都落在相同月。如此不同时区、不同经度的阴

阳历置闰之问题就消失了。民用置闰和历理置闰的不同是: * 在民用置闰,如果月朔日和中气同一天,则该阴历月包含那个中气。 * 在历理置闰,如果月朔日和中气同一天,月朔日时间必须在中气时间之前,则该阴历月才包含那个中气。 简言之,民用置闰比较月朔和中气日期;历理置闰比较月朔和中气日期、时、分、秒。由此可知,没有精确的太阳和月亮的时间数字,阴历的闰月可能会排错了。 基於这些理由,我着手寻找天文公式计算精确的太阳和月亮在纬度的时间。当年没有网路,发了大半年於美国南加州各大图书馆及大学,找寻答案。1993年出版了「中美天文万年历」一书。书中精确的天文日月时间只从1900到2010年。因恐2011後时间误差超过一分钟,不够精确,不敢印出。今年2002从网路资讯,确定太阳和月亮时间的精确度後,百忙中重新整理资料,提供给需要阴阳历转换公式的朋友。 整理出的太阳和月亮时间数字是从西元1年到2246年。有历理和中国民用两套历法。数字内容清清楚楚的看出民用历法的敝端。例如,从西元1600年到2246年,民用历法双中气的阴历月有22个,历理历法只有5个。民用历法甚至在2033、2128和2242年中,三个月之间居然跑出两个双中气;换言之,三个月中多出两个「假」闰月。前後12个阴历月中有三个闰月,闰月的去留造成许多学者的讨论和困恼。历理历法在此三年中,却没有发现到双中气阴历月。闰月的去留只要把双中气月後的「假」闰月取消,则历理历法近乎於完美。 由此可知,民用历法问题很大,应该废除。上次阴阳历重大改历在1645

阳历转化成农历法

阳历转化成农历法

————————————————————————————————作者:————————————————————————————————日期:

c++中怎样将阳历转化成农历 已关闭20[ 标签:c++, 阳历, 农历 ] 小^鱼、2011-05-03 11:06 推荐答案 一、原理篇 1.公历转换农历的算法 公历(Gregorian Calendar)与农历(Chinese Lunar Calendar)的转换关系不是一个简单的公式就可以完成,其中的转换比较复杂,原因是农历的制定相当复杂,是根据天文观测进行指定的。 比较常用并且比较简单的公历转换农历算法就是查表方法。首先要保存公历农历的转换信息:以任何一年作为起点,把从这一年起若干年的农历信息保存起来(在我的C++类中,是从1900年作为起点的。选择一个起始点的思想十分重要,在下面的干支纪法和二十四节气中也体现到了)。回想一下,我们平时是怎样来转换公历农历的呢?是查阅历书,历书中有每一天的公历农历,直接一查就可以了。那么我们可不可以也这样做呢?当然可以,但是这样做要收录每一天的信息,工作量就会很大,所以我们要简化这些信息。如何简化呢? 要保存一年的信息,其实只要两个信息就可以了:(1)农历每个月的大小;(2)今年是否有闰月,闰几月以及闰月的大小。用一个整数来保存这些信息就足够了。具体的方法是:用一位来表示一个月的大小,大月记为1,小月记为0,这样就用掉了12位,再用低四位来表示闰月的月份,没有闰月记为0。比如说,2000年的信息数据是0x0c960,转化成二进制就是1100100101100000,表示的含义是1、2、5、8、10、11月大,其余月小,低四位为0说明没有闰月。2001年的农历信息数据是0x0d954,其中的4表示该年闰4月,月份大小信息就是0x0d95,具体的就是1、2、4、5、8、10、12月大,其余月小。这样就可以用一个数组来保存这些信息。在我的C++类中是用m_lunarInfo这个数组来保存这些信息的。 下面就是公历转换成农历的具体算法: (1)计算所求时间到起始年正月初一的天数。 (2)从起始年份开始,减去每一月的天数,一直到剩余天数没有下一个月多为止。此时,m_lunarInfo的下标到了多少,就是减去了多少年,用起始年份加上这个下标就可以得到农历年份,然后看减去了几个月。如果本年不闰月或者闰月还在后面,就可以直接得到农历月份,如果在闰月月份数后面一个月,则这个月就是闰月。剩余的天数就是农历日。(具体实现时有所改进。) 2.利于泰勒公式巧算星期 在应用数学中有一个计算某一天是星期几的公式,这就是泰勒公式。公式如下: w = [c÷4] - 2c + y + [y÷4] + [26(m+1)÷10] + d - 1,其中w就是所求日期的星期数。如果求得的数大于(小于)7,就减去(加上)7的倍数,直到余数小于7为止。式子中c是指公

农历闰年闰月上下1000年表

闰年、闰月 什么是闰月?每逢闰年所加的一个月。阴阳历以朔望月的长度(29.5306日)为一个月的平均值,全年12月,同回归年(365.2422日)相差约10日21时,故顺置闰,三年闰一个月,五年闰二个月,十九年闰七个月。闰月加在某月之后叫“闰某月”。《书.尧典》:“以闰月定四时,成岁。”孔传:“一岁有馀十二日,未盈三岁足得一月,则置闰焉。”《左传.文公六年》:“闰月不告朔,非礼也。闰以正时,时以作事,事以厚生,生民之道,于是乎在矣。不告闰朔,弃时政也,何以为民?” 农历为什么会有闰月?——农历置闰月是为了协调回归年与农历年的矛盾。 回归年与农历年有什么矛盾呢?先记住:回归年的总长度为365.2422日,朔望月的长度为29.5306日。 十二个朔望月构成农历年,长度为29.5306×12=354.3546日,比回归年少10.88天即将近11天,每个月少0.91天,近1天。 依此,如农历年某年春节为大雪纷飞的冬天,第二年的春节就会在季节上提前11天,第16个农历年就会出现在赤日炎炎的夏天。 如按十三个朔望月构成农历年,长度为29.5306×13=383.8978日,比回归年又多出18天多。 如果按上述规定制定历法,就会出现天时与历法不合、时序错乱颠倒的怪现象——这就是矛盾。 为了克服这一缺点,我们的祖先在天文观测的基础上,找出了“闰月”的办法,保证农历年的正月到三月为春季,四月到六月为夏季,七月到九月为秋季,十月到十二月为冬季,也同时保证了农历岁首在冬末春初。 农历年中月以朔望月长度29.5306日为基础,所以大月为30日,小月为29日。为保证每月的头一天(初一)必须是朔日,就使得大小月的安排不固定,而需要通过严格的观测和计算来确定。因此,农历中连续两个月是大月或是小月的事是常有的,甚至还出现过如1990年三、四月是小月、九、十、十一、十二连续四个月是大月的罕见特例。 那么多长时间加一个闰月呢?最好的办法就是求出回归年日数与朔望月的日数的最小公倍数:我们希望m个回归年的天数与n个朔望月的天数相等,也就是应有等式:m×365.2422=n×29.5306 在这个等式中我们不能直接求出m和n,但可以求出它们的比例: 这个比例的近似值分别为: 在这些分式中,分子表示回归年的数目,分母表示朔望月的数目。例如第六个分数式表示19个回归年中必须加7个闰月。 19个回归年中加7个闰月的结果比较: 19个回归年=19×365.2422=6939.6118(天) 一个朔望月有29.5306天,235个朔望月=235×29.5306=6939.6910(天) 19个回归年中加7个闰月后,矛盾消除得只差:6939.6910-6939.6018=0.0892(天)——即2小时9分多,这已经是够精确的了。 所以,农历就采用了19年加7个闰月的办法,即“十九年七闰法”,把回归年与农历年很好地协调起来,使农历的元旦(春节)总保持在冬末春初。古人把235个朔望月称之为“闰周”。 农历置闰的方法可以使农历年的平均长度接近回归年,而农历中的月又有鲜明的月相特征,保持了公历和阴历两全其美的特点。 现在置闰的方法是两个冬至之间,如仅有12个月则不置闰,若有13个月即置闰。置闰

农历运算

一年中哪个月大,哪个月小,年年不同,由计算决定。 一般的,在19年里中设置7个闰月,有闰月的年份全年383天或384天。 1.公历转换农历的算法 公历(Gregorian Calendar)与农历(Chinese Lunar Calendar)的转换关系不是一个简单的公式就可以完成,其中的转换比较复杂,原因是农历的制定相当复杂,是根据天文观测进行指定的。 比较常用并且比较简单的公历转换农历算法就是查表方法。 首先要保存公历农历的转换信息:以任何一年作为起点,把从这一年起若干年的农历信息保存起来(在我的C++类中,是从1900年作为起点的。选择一个起始点的思想十分重要,在下面的干支纪法和二十四节气中也体现到了)。回想一下,我们平时是怎样来转换公历农历的呢?是查阅历书,历书中有每一天的公历农历,直接一查就可以了。那么我们可不可以也这样做呢?当然可以,但是这样做要收录每一天的信息,工作量就会很大,所以我们要简化这些信息。如何简化呢? 要保存一年的信息,其实只要两个信息就可以了:(1)、农历每个月的大小;(2//今年是否有闰月,闰几月以及闰月的大小。用一个整数来保存这些信息就足够了。具体的方法是:用一位来表示一个月的大小,大月记为1,小月记为0,这样就用掉了12位,再用低四位来表示闰月的月份,没有闰月记为0。比如说,2000年的信息数据是0x0c960,转化成二进制就是1100100101100000,表示的含义是1、2、5、8、10、11月大,其余月小,低四位为0说明没有闰月。2001年的农历信息数据是0x0d954,其中的4表示该年闰4月,月份大小信息就是0x0d95,具体的就是1、2、4、5、8、10、12月大,其余月小。这样就可以用一个数组来保存这些信息。在我的C++类中是用m_lunarInfo这个数组来保存这些信息的。 下面就是公历转换成农历的具体算法: (1) 计算所求时间到起始年正月初一的天数。 (2) 从起始年份开始,减去每一月的天数,一直到剩余天数没有下一个月多为止。此时, m_lunarInfo的下标到了多少,就是减去了多少年,用起始年份加上这个下标就可以得到农历年份,然后看减去了几个月。如果本年不闰月或者闰月还在后面,就可以直接得到农历月份,如果在闰月月份数后面一个月,则这个月就是闰月。剩余的天数就是农历日。(具体实现时有所改进。)

公历和农历转换算法详解

公历和农历转换算法详解 //C51写的公历转农历和星期 #define uchar unsigned char #define uint unsigned int #include /* 公历年对应的农历数据,每年三字节, 格式第一字节BIT7-4 位表示闰月月份,值为0 为无闰月,BIT3-0 对应农历第1-4 月的大小第二字节BIT7-0 对应农历第5-12 月大小,第三字节BIT7 表示农历第13 个月大小 月份对应的位为1 表示本农历月大(30 天),为0 表示小(29 天) 第三字节BIT6-5 表示春节的公历月份,BIT4-0 表示春节的公历日期 */ code uchar year_code[597] = { 0x04,0xAe,0x53, //1901 0 0x0A,0x57,0x48, //1902 3 0x55,0x26,0xBd, //1903 6 0x0d,0x26,0x50, //1904 9 0x0d,0x95,0x44, //1905 12 0x46,0xAA,0xB9, //1906 15 0x05,0x6A,0x4d, //1907 18 0x09,0xAd,0x42, //1908 21 0x24,0xAe,0xB6, //1909 0x04,0xAe,0x4A, //1910 0x6A,0x4d,0xBe, //1911 0x0A,0x4d,0x52, //1912 0x0d,0x25,0x46, //1913 0x5d,0x52,0xBA, //1914 0x0B,0x54,0x4e, //1915 0x0d,0x6A,0x43, //1916 0x29,0x6d,0x37, //1917 0x09,0x5B,0x4B, //1918 0x74,0x9B,0xC1, //1919 0x04,0x97,0x54, //1920 0x0A,0x4B,0x48, //1921 0x5B,0x25,0xBC, //1922 0x06,0xA5,0x50, //1923 0x06,0xd4,0x45, //1924 0x4A,0xdA,0xB8, //1925 0x02,0xB6,0x4d, //1926 0x09,0x57,0x42, //1927 0x24,0x97,0xB7, //1928

农历闰年闰月上下1000年表

农历闰年闰月上下1000年表 1645年闰五月,1648年闰四月,1651年闰正月,1653年闰六月,1656年闰五月1659年闰三月,1661年闰八月,1664年闰六月,1667年闰四月,1670年闰二月1672年闰七月,1675年闰五月,1678年闰三月,1680年闰八月,1683年闰六月1686年闰四月,1689年闰三月,1691年闰七月,1694年闰五月,1697年闰三月1699年闰七月,1702年闰六月,1705年闰四月,1708年闰三月,1710年闰七月1713年闰五月,1716年闰三月,1718年闰八月,1721年闰六月,1724年闰四月1727年闰二月,1729年闰七月,1732年闰五月,1735年闰四月,1737年闰九月1740年闰六月,1743年闰四月,1746年闰三月,1748年闰七月,1751年闰五月1754年闰四月,1756年闰九月,1759年闰六月,1762年闰五月,1765年闰二月1767年闰七月,1770年闰五月,1773年闰三月,1775年闰十月,1778年闰六月1781年闰五月,1784年闰三月,1786年闰七月,1789年闰五月,1792年闰四月1795年闰二月,1797年闰六月,1800年闰四月,1803年闰二月,1805年闰七月1808年闰五月,1811年闰三月,1814年闰二月,1816年闰六月,1819年闰四月1822年闰三月,1824年闰七月,1827年闰五月,1830年闰四月,1832年闰九月1835年闰六月,1838年闰四月,1841年闰三月,1843年闰七月,1846年闰五月1849年闰四月,1851年闰八月,1854年闰七月,1857年闰五月,1860年闰三月1862年闰八月,1865年闰五月,1868年闰四月,1870年闰十月,1873年闰六月1876年闰五月,1879年闰三月,1881年闰七月,1884年闰五月,1887年闰四月1890年闰二月,1892年闰六月,1895年闰五月,1898年闰三月,1900年闰八月1903年闰五月,1906年闰四月,1909年闰二月,1911年闰六月,1914年闰五月1917年闰二月,1919年闰七月,1922年闰五月,1925年闰四月,1928年闰二月1930年闰六月,1933年闰五月,1936年闰三月,1938年闰七月,1941年闰六月1944年闰四月,1947年闰二月,1949年闰七月,1952年闰五月,1955年闰三月1957年闰八月,1960年闰六月,1963年闰四月,1966年闰三月,1968年闰七月1971年闰五月,1974年闰四月,1976年闰八月,1979年闰六月,1982年闰四月1984年闰十月,1987年闰六月,1990年闰五月,1993年闰三月,1995年闰八月1998年闰五月,2001年闰四月,2004年闰二月,2006年闰七月,2009年闰五月2012年闰四月,2014年闰九月,2017年闰六月,2020年闰四月,2023年闰二月

农历阳历阴历公历的差别

论农历、阳历、阴历、公历的差别 现在人们生活中最常接触到的历法有两种:一种为公元**年*月*日的形式;一种为几月初几的形式。 但是人们通常提到的历法名称却有三种:即农历、阳历、阴历、公历。 由于不能一一对应,所以产生了很多的争论。 有说农历就是阴历的,就是几月初几的形式。(百度百科上就是持这种观点的)这种比较普遍,从小我母亲就这么教我。 也有说农历就是阳历,就是公元**年*月*日的形式。持这种说法的人给的理由看上去比较科学。 我在对比了几种说法之后,自己也有了一些看法。 在我想来,历法的由来是为了方便,开始是为了记事方便。人们从日升日落中确定了基准:天。 由于天的单位太小,人们可能又先后确定了月和年的概念。 月来自月亮的圆缺变化,变化一个周期为一月,我们称之为“朔望月”,一个“朔望月”大约29.5309天,下面只按29.5天来说明。 年来自地球绕太阳公转产生的寒暑交替,四季变换,一个周期为一年,我们称之为“回归年”,一个“回归年”365天多一点,下面只按365天来说明。 如果一种历法按照月亮圆缺变化而来,我们称之为阴历;同样如果一种历法按照地球绕太阳公转而来,我们称之为阳历。 有了这个大概念,我觉得我们的祖先首先有了阴历。并确定一个月30天,下一个月29天,间隔着来,平均每月29.5天。 这种历法12个月后254天,比一年少11天。我查到了我们祖先的两种解决方法。 方法一: 示例为回回历,伊斯兰教采用这种历法,这种历法不采用闰月,每年都是12个月,都是354天。导致每年的寒暑月份不确定,也就是说,可能今年冬天是5月份,过些年冬天变成了10月份。 方法二: 就是我们现在还能常接触到的几月初几形式的历法。这种历法采用闰月,每两三年就加入一个闰月。这种历法以“朔望月”为基准,兼顾“回归年”,所以比较科学实用,到现在还在用。

公历转农历EXCEL宏讲解

Public Function NongLi(Optional XX_DATE As Date) Dim MonthAdd(11), NongliData(99), TianGan(9), DiZhi(11), ShuXiang(11), DayName(30), MonName(12) Dim curTime, curYear, curMonth, curDay Dim GongliStr, NongliStr, NongliDayStr Dim i, m, n, k, isEnd, bit, TheDate '??è?μ±?°?μí3ê±?? curTime = XX_DATE 'ìì?é??3? TianGan(0) = "?×" TianGan(1) = "òò" TianGan(2) = "±?" TianGan(3) = "??" TianGan(4) = "?ì" TianGan(5) = "?o" TianGan(6) = "?y" TianGan(7) = "Dá" TianGan(8) = "èé" TianGan(9) = "1?" 'μ??§??3? DiZhi(0) = "×ó" DiZhi(1) = "3ó" DiZhi(2) = "òú" DiZhi(3) = "??" DiZhi(4) = "3?" DiZhi(5) = "?è" DiZhi(6) = "??" DiZhi(7) = "?′" DiZhi(8) = "éê" DiZhi(9) = "ó?" DiZhi(10) = "D?" DiZhi(11) = "o¥" 'ê??à??3? ShuXiang(0) = "êó" ShuXiang(1) = "?£" ShuXiang(2) = "?¢" ShuXiang(3) = "í?" ShuXiang(4) = "áú" ShuXiang(5) = "é?" ShuXiang(6) = "?í"

闰月

闰月指的是阴历中的一种现象,阴历是按照月亮的圆缺即朔望月安排大月和小月,一个朔望月的长度是29.5306日,是月相盈亏的周期, 目录 1基本介绍 2历史出处 3历史发展 4闰月列表 5相关介绍 阴阳历以朔望月的长度(29.5306日)为一个月的平均值,全年12个月,同回归年(365.2422日)相差约10日21时,故需要置闰,三年闰一个月,五年闰二个月,十九年 闰七个月。 闰月加在某月之后叫“闰某月”,如已经过去的2009年农历闰月为己丑年闰五月(2009年6月23日——2009年7月21日),2012年农历闰月为的壬辰年闰四月(2012年5月21日——2012年6月18日)等。 2历史出处编辑本段 《书·尧典》:“以闰月定四时,成岁。” 孔传:“一岁有馀十二日,未盈三岁足得一月,则置闰焉。” 《左传·文公六年》:“闰月不告朔,非礼也。闰以正时,时以作事,事以厚生,生民之道,于是乎在矣。不告闰朔,弃时政也,何以为民?” 3历史发展编辑本段 如果不注意,大概很多人认为“闰月”与“闰年”是一个意思,其实不然,虽说只是一字之差,所包含的意思却相差很远。 “闰年”。我们通常所说的一年365天,其实是个约数,准确的数字应是365.2422日。那么一年365天,就与实际的一年相差0.2422日,这样四年之后就比实际的一年少了近一天。为了弥补这个差值,历法中规定,4年设一闰,即能被4整除的年份为闰年,另附加规定,凡遇世纪年(末尾数字为两个零的年份),必然被400所整除才算闰年,其它的整百年不是闰年,即“百年不闰”。如1996年即闰年,2000年也是闰年,而1700年则不是闰年。阳历闰年的二月有29天,2月29日为闰日,阳历闰年有366天。也就是说阳历闰年的二月不叫闰二月,闰月为农历所特有。 现在再来说“闰月”。闰月指的是阴历中的一种现象,阴历是按照月亮的圆缺即朔望月安排大月和小月,一个朔望月的长度是29.5306日,是月相盈亏的周期,阴历规定,大月30

农历闰月

公元1949 --- 2020 年农历闰月表 1949 闰七月 1952 闰五月 1955 闰三月 1957 闰八月 1960 闰六月 1963 闰四月 1966 闰三月 1968 闰七月 1971 闰五月 1974 闰四月 1976 闰八月 1979 闰六月 1982 闰四月 1984 闰十月 1987 闰六月 1990 闰五月 1993 闰三月 1995 闰八月 1998 闰五月 2001 闰四月 2004 闰二月 2006 闰七月 2009 闰五月 2012 闰四月 2014 闰九月 2017 闰六月 2020 闰四月 从上表可知,闰四,五,六月特别多,闰九,十月特别少,尤其是没有闰十一,十二月和正月。这是为什么呢?原来,两个中气间的时间间隔并不是都一样的。前面提到的30.4368 日只是个平均数。实际上,地球绕太阳运动的轨道是个椭圆,太阳位于椭圆的一个焦点上。轨道上离太阳最远的一点叫做“远日点”,最近的一点叫做“近日点”。地球在远日点附近运动慢,两个中气的时间间隔就长,最长的达到31.45日,因此不含中气的可能多,闰月出现的机会就多些。反之,在近日点附近地球运动快,两中气间的时间间隔就短,最短的只有29天多,因此不含中气的机会少,闰月出现的机会也就少了。这样,我们对正月或腊月(也包括农历十一月)不设置闰月就不会感到奇怪。如若闰月要放在正月或腊月,那我们岂不是可以过两个春节或两个除夕了吗?其实这种历法在清代前曾经有过,但后来由于注历方法的改变,就再也没有这种巧合的事了。正月与腊月在短时间内是不会出现闰月的。 1800-2111年(311年)农历闰月表 年份闰月年份闰月年份闰月年份闰月年份闰月年份闰月年份闰月 1803 二月 1805 六月 1808 五月 1811 三月 1814 二月 1816 二月 1819 四月 1822 三月 1824 七月 1827 五月 1830 八月 1832 九月 1835 六月 1838 四月 1841 三月 1843 七月 1846 五月 1849 四月 1851 八月 1854 七月 1857 五月 1960 三月 1862 八月 1865 五月 1868 四月 1870 十月 1873 六月 1876 五月 1879 三月 1881 七月 1884 五月 1887 四月 1890 二月 1892 六月 1895 五月 1898 三月 1900 八月 1903 五月 1906 四月 1909 二月 1911 六月 1914 五月 1917 二月 1919 七月 1922 五月 1925 四月 1928 二月 1930 六月 1933 五月 1936 三月 1938 七月 1941 六月 1944 六月 1946 二月 1949 七月 1952 五月 1955 三月 1957 三月 1960 六月 1963 四月 1966 三月 1968 七月 1971 五月 1974 四月 1976 八月 1979 六月 1982 四月 1984 十月 1987 六月 1990 五月 1993 三月 1995 八月 1998 五月 2001 四月 2006 七月 2009 五月 2012 四月 2014 九月 2017 六月 2020 四月 2023 二月 2025 六月 2028 五月 2031 三月 2033 七月 2036 六月 2039 五月 2042 二月 2044 七月 2047 五月 2050 二月 2052 八月 2055 六月 2058 四月 2061 三月 2063 七月 2066 五月 2069 四月 2071 八月 2074 六月 2077 四月 2080 三月 2082 七月 2085 五月 2069 四月 2090 八月 2093 六月 2096 四月 2099 二月 2103 六月 2107 三月 2111 二月

阴历阳历转换计算公式

1、阳历日期推算阴历日期的方法: 前已述及阴历日期是以月亮的圆缺为计月单位,其以逢朔为初一,以月望为十五(大月 为十六日),以月晦为二十九日(大月为三十日)。 如要知道1984年6月8日是阴历几日?可以利用公式推算阴历日期: 设:公元年数-1977(或1901)=4Q+R 则:阴历日期=14Q+10.6(R+1)+年内日期序数-29.5n (注:式中Q、R、n均为自然数,R<4) 例:1994年5月7日的阴历日期为: 1994-1977=17=4×4+1 故:Q=4,R=1 则:5月7日的阴历日期为: 14×4+10.6(1+1)+(31+28+31+31+7)-29.5n =204.2- 29.5n 然后用29.5去除204.2得商数 6......27.2,6即是n值,余数27即是阴历二十七日2.公历换算为农历 二十四节气在黄道上的位置是固定的,但各年有平年和闰年之分,就使得回归年天数与 实际天数不等,每年在日历上可差一天。这样可以将阴历经过任意整回归年在现在的日历上 查到阳历(阳历一年相当阴历的月数为365.2422/29.530588=12.36827个月)。例如,可先在1995年的日历上查得与(该年)阴历对应的阳历日期,这样就找到了临时落脚点, 也就是找到了阴阳互换的关键。例如,可先以阴历四月初一(日)为引数,在1995年日历上查到对应的阳历为4月30日。由于已经计算出经过的月数,将经过的月数的尾数(小数)化为日,加在4月30日上,就得到经过(1995-1070)整年数的阳历日期,也就是起始阴 历日期对应的阳历日期,即得到了待查的日期为4月30日加上0.64957×29.530588得到(1070年)5月19.1821840日。这样就得到了所给例子的阴阳历日期换算结果……”。 0.64957月的由来, (1995-1070)×12.36827=11440.64957月 已知依泽公生于梁龙德二年(922)六月二十一日,依下表提供的2099年各月初一日的公历月日数,可以算出龙德二年六月二十一日的公历月日数 公元2099年农历各月初一日的公历月日 (2099-922)×12.36827=1455.45379月 余数为0.45379月×29.530588日=13.4O日 因2099年五月初一日(包括该年闯二月)在公历6月19日,加上计算所得的13日为龙德二年六月初一日的公历月日,即该年7月2日,则该年农历六月二十一日为该年7月22日。 3.计算结果的订正 实际上上列公历换算为农历时常有较大的误差,如熙宁三年四月初一日为公历1070年5月13日,而不是5月19日。通过中国历法所用的于支记日法求算所用两历的干支,对所 求结果加以订正。 如,马依泽公生于回历310年3月20日,自回历历元起算共历日数为: 自回历元旦至其3月20日,共历79日。 自回历元年元旦至309年元旦,共历113个闰年196个平年。又回历历元在公历622年7月16日,已知该日的干支序数为50,癸丑日,减1(因自甲子起算),余49应加入下列算式中, (309 ×354+113+79+49)÷60=1827.116667

公历闰年的精确计算方法

1. 阳历中有闰日的年份叫闰年,相反就是平年,平年为365 天,闰年为366 天。 在公历(格里历)纪年中,平年的二月为28天,闰年的二月为29 天。闰年平月 2 月29 日为闰日。 2. 闰年的计算方法:公历纪年法中:能被 4 整除的大多是闰年;能被100 整除而不能被400 整除的年份不是闰年;能被3200整除的也不是闰年;如1900 年是平年,2000年是闰年,3200 年不是闰年。 3. 中国农历的闰年:中国旧历农历纪年中,有闰月的一年称为闰年。一般年份为12个月,354或355天,闰年则为13 个月,383或384 天。 4. 闰年遵循的规律:四年一闰,百年不闰,四百年再闰。 中国旧历农历每月的天数依照月亏而定,一年的时间以12 个月为基准,平年比一回归年少约11天。为了合上地球围绕太阳运行周期即回归年,每隔2 到 4 年,增加一个月,增加的这个月为闰月。在加有闰月的那一年有13 个月,历 年长度为384或385日,这一年也称为闰年。 原因:地球绕太阳旋转一周实际的时间是365日5小时48分46秒.为了方便,我们把平年按365天计算实际上就少算了5小时48分46秒,四年就相差了23小时15分4秒也就是说4年就少算了近一天.所以每四年就规定了一个闰年把这一天加在闰年的二月以补上少算的时间,也称为“四年一闰”,根据上面的叙述每四年出现一个闰年时时间并不是整整24 小时,所以四年一闰又多算了44 分56秒.按这样计算每一百年就多算了18 小时43分20秒又将近一天,所以到公元整百年时这一年不算闰年以抵消多算的时间称为“百年不闰”。按上面百年不闰的计算每一百年又多出了5小时16分40秒,这样每四百年就多出了21 小时6分40秒,差不多又是一天所以,到公元年份是四百倍数时这一年又是闰年,称为——四百年又闰 这就是“四年一闰、百年不闰、四百年又闰”的道理。按推2000 年是闰年,2100年就不是闰年,同样道理四百年又闰实际上又亏了2小时53分

农历闰年闰月上下1000年表(1645年-2796年)资料

闰月年的九项必知及其计算方法 一、何谓闰月? 1、闰月的来历 如今世界通行的公历,即我们通常所说的阳历,指的是太阳历,是以地球绕太阳公转的运动周期为基础而制定的历法。阳历中有平年闰年之分,平年365天,闰年366天,每四年一闰年。 与太阳相对应,月亮被称为“太阴”,以月亮的运动规律为依据设置的历法,就是“太阴历”,简称“阴历”。阴历在天文学中,以月球绕行地球一周为一月,即以朔望月作为确定历法的基础,一年为十二个历月。一个朔望月的长度是29.5306日,阴历规定,大月30天,小月29天,一年12个月共354天。 这样,阴历的一年与阳历的一年相差11天,只需经过17年,阴阳历日期就同季节发生倒置。这样的历法,会引起人们的生活的混乱。 而中国的古人,沿用的历法是农历,是一种阴阳合历,用闰月的办法解决了这个矛盾。 闰月保证了农历年的正月到三月为春季,四月到六月为夏季,七月到九月为秋季,十月到十二月为冬季,也同时保证了农历岁首在冬末春初(以上均指农历季节)。 2、闰月年的规律 农历就采用了19年加7个闰月的办法,即“十九年七闰法”,把回归年与农历年很好地协调起来,使农历的元旦(中国新年)总保持在冬末春初。古人把235个朔望月称之为“闰周”。 现在置闰的方法是两个冬至之间,如仅有12个月则不置闰,如果有13个月即置闰。置闰的月从“冬至”开始,当出现第一个没有“中气”的月份,这个月就是闰月,其名称是在前个月的前面加一个“闰”字。 3、闰月和闰年不同 “闰月”与“闰年”只是一字之差,意义却相差很远。 “闰年”,我们习惯说一年365天,与一年准确的时间365.2422日之间,相差0.2422日,这样四年之后就比实际的一年少了近一天。为了弥补这个差值,历法中规定,4年设一闰,即能被4整除的年份为闰年。“闰月”,在上面噎有过较为详细的说明,每十九年就会有七个闰月,相当于不到三年就会有一年是闰月年。闰月年的一年有十三个月。显而易见,这与“闰年”是大不同的。 二、各地闰月年的习俗

excel公历转农历的四种方法

excel公历转农历的四种方法 excel公历转农历方法一:使用text函数 A列是公历日期,我们在B1单元格输入公式:=TEXT(A1,"[$-130000]yyyy年m月"&I F(LEN(--TEXT(A1,"[$-130000]dd"))=1,"初","")&"d"),下拉完成公历转农历。 excel公历转农历方法二:使用text+MID函数 A列仍然是公历,B1输入公式:=MID("甲乙丙丁戊己庚辛壬癸",MOD(TEXT(A1,"[$-13 0000]e")-4,10)+1,1)&MID("子丑寅卯辰巳午未申酉戌亥",MOD(TEXT(A1,"[$-130000]e")-4, 12)+1,1)&"年"&TEXT(A1,"[$-130000][DBNum1]m月d日"即可。 excel公历转农历方法三:使用text+MID+ CHOOSE+ YEAR函数 A1为公历,B1输入:=CHOOSE(MOD(YEAR(A1)-1900,10)+1,"庚","辛","壬","癸","甲", "乙","丙","丁","戊","己")&CHOOSE(MOD(YEAR(A1)-1900,12)+1,"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥")&TEXT(A1,"[dbnum1][$-130000]年m月"&IF(--TEXT(A1, "[$-130000]d")<11,"初","")&TEXT(A1,"[dbnum1][$-130000]d")) excel公历转农历方法四:使用自定义函数 上面介绍的excel公历转农历都是使用excel内置函数完成的,有一个弊端就是公式太长,如果使用自定义函数,在公式栏就可以简化输入。 如下图所示,我们在B2输入公式:=nongli(A2),即可。C列农历简称中C2公式是:=RIGHT(B2,LEN(B2)-8)。

农历大小月是怎么算的

农历大小月是怎么算的 (43人评价)|11519人阅读|85次下载|举报文档 农历大小月是怎么确定的?其规律是什么?农历的历月长度是以朔望月为准的,大月30天,小月29天,大月和小月相互弥补,使历月的平均长度接近朔望月。农历固定地把朔的时刻所在日子作为月的第一天——初一日。所谓“朔”,从天文学上讲,它有一个确定的时刻,也就是月亮黄经和太阳黄经相同的那一瞬间。(太阳和月亮黄经的计算十分繁琐和复杂,这里就不予介绍了)至于定农历日历中月份名称的根据,则是由“中气”来决定的。即以含“雨水”的月份为一月;以含“春分”的月份为二月;以含“谷雨”的月份为三月;以含“小满”的月份为四月;以含“夏至”的月份为五月;以含“大暑”的月份为六月;以含“处暑”的月份为七月;以含“秋分”的月份为八月;以含“霜降”的月份为九月;以含“小雪”的月份为十月;以含“冬至”的月份为十一月;以含“大雪”的月份为十二月。(没有包含中气的月份作为上月的闰月)农历的历年长度是以回归年为准的,但一个回归年比12个朔望月的日数多,而比13个朔望月短,古代天文学家在编制农历时,为使一个月中任何一天都含有月相的意义,即初一是无月的夜晚,十五左右都是圆月,就以朔望月为主,同时兼顾季节时令,采用十九年七闰的方法:在农历十九年中,有十二个平年,为一平年十二个月;有七个闰年,每一闰年十三个月。为什么采取“十九年七闰”的方法呢?一个朔望月平均是29.5306日,一个回归年有12.368个朔望月,0.368小数部分的渐进分数是1/2 、1/3 、3/8 、4/11 、7/19 、46/125,即每二年加一个闰月,或每三年加一个闰月,或每八年加三个闰月……经过推算,十九年加七个闰月比较合适。因为十九个回归年=6939.6018日,而十九个农历年(加七个闰月后)共有235个朔望月,等于6939.6910日,这样二者就差不多了。七个闰月安插到十九年当中,其安插方法可是有讲究的。农历闰月的安插,自古以来完全是人为的规定,历代对闰月的安插也不尽相同。秦代以前,曾把闰月放在一年的末尾,叫做“十三月”。汉初把闰月放在九月之后,叫做“后九月”。到了汉武帝太初元年,又把闰月分插在一年中的各月。以后又规定“不包含中气的月份作为前一个月的闰月”,直到现在仍沿用这个规定。为什么有的月份会没有中气呢?节气与节气或中气与中气相隔时间平均是30.4368日(即一回归年排65.2422日平分12等分),而一个朔望月平均是29.5306日,所以节气或中气在农历的月份中的日期逐月推移迟,到一定时候,中气不在月中,而移到月末,下一个中气移到另一个月的月初,这样中间这个月就没有中气,而只剩一个节气了。 “乘机安全小贴士”安全出行要重视 上面讲过,古人在编制农历时,以十二个中气作为十二个月的标志,即雨水是正月的标志,春分是二月的标志,谷雨是三月的标志……把没有中气的月份作为闰月就使得历月名称与中气一一对应起来,从而保持了原有中气的标志。从十九年七闰来说,在十九个回归年中有228个节气和228个中气,而农历十九年有235个朔望月,显然有七个月没有节气和七个月没有中气,这样把没有中气的月份定为闰月,也就很自然了。农历月的大小很不规则,有时连续两个、三个、四个大月或连续两个三个小月,历年的长短也不一样,而且差距很大。节气和中气,在农历里的分布日期很不稳定,而且日期变动的范围很大。这样看来,农历似乎显得十分复杂。其实。农历还是有一定循环规律的:由于十九个回归年的日数与十九个农历年的日数差不多相等,就使农历每隔十九年差不多是相同的。每隔十九年,农历相同月份的每月初一日的阳历日一般相同或者相差一、二天。每隔十九年,节气和中气日期大体上是重复的,个别的相差一、两天。相隔十九年闰月的月份重复或者相差一个月。二十四节气是由地球在绕太阳公转的轨道上的位置确定的。以每年的冬至为始,每15度为一个节气。换句话说,太阳从黄经零度起,沿黄经每运行15度所经历的时日称为“一个节气”。

中国日历(公历+农历)算法

中国公历算法 中国公历算法不是太难,关键是星期值的确定。这里给出了简单算法: public static int dayOfWeek(int y, int m, int d) { int w = 1; // 公历一年一月一日是星期一,所以起始值为星期日 y = (y-1)%400 + 1; // 公历星期值分部 400 年循环一次 int ly = (y-1)/4; // 闰年次数 ly = ly - (y-1)/100; ly = ly + (y-1)/400; int ry = y - 1 - ly; // 常年次数 w = w + ry; // 常年星期值增一 w = w + 2*ly; // 闰年星期值增二 w = w + dayOfYear(y,m,d); w = (w-1)%7 + 1; return w; } 中国农历算法 根公历相比,中国农历的算法相当复杂。我在网上找的算法之中,https://www.wendangku.net/doc/4a17958076.html, 的算法是最好的一个。这个算法使用了大量的数据来确定农历月份和节气的分部,它仅实用于公历 1901 年到 2100 年之间的 200 年。

中国农历计算程式 跟据 https://www.wendangku.net/doc/4a17958076.html, 提供的算法,我写了下面这个程式: [HTML] /** * ChineseCalendarGB.java * Copyright (c) 1997-2002 by Dr. Herong Yang. https://www.wendangku.net/doc/4a17958076.html,/ * 中国农历算法 - 实用于公历 1901 年至 2100 年之间的 200 年*/ import java.text.*; import java.util.*; class ChineseCalendarGB { private int gregorianYear; private int gregorianMonth; private int gregorianDate; private boolean isGregorianLeap; private int dayOfYear; private int dayOfWeek; // 周日一星期的第一天 private int chineseYear; private int chineseMonth; // 负数表示闰月 private int chineseDate; private int sectionalTerm; private int principleTerm; private static char[] daysInGregorianMonth =

万年历的算法

摘自: 星期、干支、二十八宿计算公式打印本页关闭本窗口 1. 求星期公式 星期=[5+A(实际天数)] mod 7 2. 干支计算公式 六十甲子干支序号,从1->59->0。 六十甲子干支序号=[23+A(实际天数)] mod 60 3. 二十八宿计算公式 二十八宿序号=[23+A(实际天数)] mod 28 4. 实际天数A的计算 A=B(基本天数)+C(闰日天数) B=(计算年-1)*365+(要计算到年的月日天数) 例:1984年2月1日的基本天数B=(1984-1)*365+(31+1)=723827(天), 其中,31是1月为31天,1为2月1日为1天。 公元308年8月28日的基本天数 B=(308-1)*365+(31+28+31+30+31+30+31+27)=112055+239=112294(天) 这里的(要计算到年的月日天数),用的是公历,月日天数的规则我好 象小学就学过了。哈哈…… C=(计算年-1) div 4 -误差修正值+ fixValue2 fixValue2为0或者1。常值为0,当年数为闰年(公历闰年法)之中的3月 1日之后的为1。 误差修正值推算: 公元元年1月1日至1582年10月14日为0。 1582年10月15日至1699年12月31日为10。 从1701年1月1日起每增加一个世纪累加1,但能被400除尽的世纪不累 加1。此方法推算即可。 --有一个问题,1700年这一年的修正值应为多少呢?算法中正好没有 讲到,但看来应该是10。 例1701年1月1日起误差值为11,而1801年1月1日起误差修正值为12,而1901年1月1日起误差修正值为13, 但2001年误差修正值仍为13,因为2000年能被400整除,故不累加。而2101年1月1日起误差修正值为14。 5. 实例:1998.3.15的星期、干支与二十八宿 B=(1998-1)*365+(31+28+15)=728979 C=(1998-1) div 4 - 13 + 0 = 486 A=B+C=728979+486=729465 星期序号=(5+729465) mod 7=0,即为星期日 干支序号=(13+729465) mod 60=58,即为辛酉

相关文档