阳历-农历[1]
农历与公历的转换表
农历与公历的转换表农历与公历的转换表是一种非常有用的工具,可以帮助人们在农历和公历之间进行转换。
农历和公历是世界上最常用的两种历法,它们在不同的文化和地区都有广泛的应用。
农历,也称为阴历或农民历,是中国传统的历法系统。
它基于月亮的运行周期,每个月亮周期为29.5天。
农历的一个月通常由一个新月开始,到下一个新月结束。
农历的年份是根据太阳和月亮的位置来计算的,因此每年的长度不固定,一般为354或355天。
公历,也称为阳历或格里高利历,是现代世界通用的历法系统。
它基于地球绕太阳运行的周期,一年为365.24天。
公历的一个月通常由一个月份的第一天开始,到下个月份的第一天结束。
公历的年份是根据太阳的位置来计算的,因此每年的长度相对稳定。
由于农历和公历的计算方式不同,所以在两种历法之间进行转换是一项复杂的任务。
为了方便人们进行转换,农历与公历的转换表应运而生。
这个表格通常包含了从某一年开始到未来几十年的日期对应关系,可以帮助人们快速准确地找到农历和公历之间的对应日期。
使用农历与公历的转换表非常简单。
只需要找到所需日期的年份和月份,然后在表格中查找对应的日期即可。
例如,如果我们想知道2022年春节是公历的哪一天,我们只需要找到2022年的行,然后在春节所在的列中找到对应的公历日期。
农历与公历的转换表不仅可以帮助人们了解特定日期的对应关系,还可以帮助人们更好地理解不同历法之间的差异。
通过比较农历和公历的日期,我们可以发现它们在节气、节日和季节等方面的差异。
这对于跨文化交流和了解不同文化的习俗和传统非常有帮助。
总之,农历与公历的转换表是一种非常实用的工具,可以帮助人们在农历和公历之间进行转换。
它不仅方便了人们的日常生活,还促进了不同文化之间的交流和理解。
无论是在个人生活中还是在跨文化交流中,农历与公历的转换表都发挥着重要的作用。
中文公元2024年日历表(带农历【阴历】完美打印版)
11 12 13 14 15 16 17
初八 初九 初十 十一 十二 十三 十四
18 19 20 21 22 23 24
十五 十六 十七 十八 十九 二十 廿一
25 26 27 28 29 30 31
廿二 廿三 廿四 廿五 廿六 廿七 廿八
2024年9月
日一二三四五六
十一 十二 十三 十四 十五 十六 十七
28 29 30 31
十八 十九 二十 廿一
2024年2月
日一二三四五六
123
廿二 廿三 廿四
4 5 6 7 8 9 10
廿五 廿六 廿七 廿八 廿九 三十 正月
11 12 13 14 15 16 17
初二 初三 初四 初五 初六 初七 初八
18 19 20 21 22 23 24
初九 初十 十一 十二 十三 十四 十五
25 26 27 28 29
十六 十七 十八 十九 二十
2024年3月
日一二三四五六
12
廿一 廿二
3456789
廿三 廿四 廿五 廿六 廿七 廿八 廿九
10 11 12 13 14 15 16
二月 初二 初三 初四 初五 初六 初七
17 18 19 20 21 22 23
初五 初六 初七 初八 初九 初十 十一
19 20 21 22 23 24 25
十二 十三 十四 十五 十六 十七 十八
26 27 28 29 30 31
十九 二十 廿一 廿二 廿三 廿四
2024年6月
日一二三四五六
1
廿五
2345678
廿六 廿七 廿八 廿九 五月 初二 初三
农历和阴历是怎么一回事 公历和阳历是怎么回事
农历和阴历是怎么一回事公历和阳历是怎么回事>很多朋友都不知道农历、阴历是怎么一回事,尤其是城市里的小孩,压根就没听说过农历这一说法。
比如我们过年过中秋节等都是按照农历算的。
通常所说的阴历也叫农历、夏历。
是中国的一种历法,是阴阳历的一种,一般叫作阴历。
平年十二个月,大月三十天,小月二十九天,全年354天或355天(一年中哪个月大,哪个月小,年年不同)。
由于每年的天数比太阳年约差十一天,所以在十九年里设置七个闰月,有闰月的年份全年383天或384天。
又根据太阳的位置,把一个太阳年分成二十四个节气,以利于农业种植等活动。
纪年用天干地支搭配,六十年周而复始。
这种历法相传创始于夏代,所以又称为夏历。
也叫旧历。
公历称为“阳历”,民间的传统的“夏历”、“农历”通俗地称之为“阴历”。
阳历是以地球环绕太阳一周的时间算作一年。
它的长度为三百六十五天五小时四十八分四十六秒。
由于它不是整数,为了把长短拉平,有的年份是三百六十六天,称为“闰年”;有的年份是三百六十五天,称为“平年”。
阴历根据月亮圆缺变化的周期,即朔望月制定的。
阴历的主要特点是:历月的长短依据天象即月相来确定,大月30日,小月29日。
公历=阳历是世界通用的日期也就是我们平常的日期农历=阴历是我国古代用来农耕的日期,也就是日历下面的小字所表示的日期1,阳历--以地球绕太阳一周为一年所定出的历法。
2,阴历--以太阴(月亮)绕地球为一个月,12个月为一年(闰年为13个月)所定出来的历法.(以闰月调节年之四时)。
3,公历--世界各国通用的历法。
为太阳历,即阳历。
4,夏历--中华历代所用的历法,始自夏代,故称是阴历,历代都在不断修改,后来加上24节气后,成了阴阳合历。
5,农历--与夏历没有什么区别.历法为农事而立,所以中国人叫它农历.其中的24节气是按太阳年24等分而得,这是阳历部分.农历的月日及闰法属于阴历部分,编在一起就成了和阴阳合历.我们平常没注意,叫惯了阴历不加区分。
2021阴历阳历对照表
2021阴历阳历对照表2021年是辛丑年,是中国农历周期中的第78个年头,共有365天。
同时,2021年也是公历周期中的一个闰年,共有366天。
下面我们来看一下2021阴历阳历对照表。
1. 阳历和阴历的简介阳历是一种以地球绕太阳运行为基础的历法,其基本单位是日。
因为地球绕太阳运行的规律十分稳定,所以阳历的计算规则相对简单易懂。
阴历是基于月相变化的历法,其基本单位是月。
一个月的长度为29至30天不等。
因为月相变化的规律比较复杂,所以阴历的计算也相对较为复杂。
2. 2021阴历阳历对照表(1)2021年公历及农历定时时间表公历日期农历日期1月1日(周五) 冬月十七2月12日(周五) 正月廿九3月20日(周六) 二月廿九4月4日(周日) 三月十九5月5日(周三) 四月廿四6月14日(周一) 五月十三7月22日(周四) 六月十四8月22日(周日) 七月十三9月21日(周二) 八月十四10月1日(周五) 九月初五11月13日(周六) 十月初十12月22日(周三) 冬月初十一(2)2021年公历及农历每个月的名称和日期公历月份农历月份农历日期1月腊月除夕(1月11日)2月正月初八(2月16日)3月二月初九(3月18日)4月三月初五(4月13日)5月四月初二(5月12日)6月五月初七(6月10日)7月六月初七(7月9日)8月七月初六(8月8日)9月八月初五(9月6日)10月九月初六(10月5日)11月十月初八(11月4日)12月冬月初七(12月4日)3. 阳历和阴历的应用阳历广泛应用于日常生活中的时间记忆和管理中,如公司的办公日历、驾驶证的有效期、保险合同的有效期等。
阴历则应用于重要的传统节日和纪念日,如春节、清明节、端午节、中秋节、重阳节、腊八节等。
同时,许多人也会依据阴历的推算来选择吉日进行重要的活动,如结婚、开业、搬家等。
总结:以上是2021阴历阳历对照表,相信大家对于阳历和阴历的区别和应用也有了更深入的理解。
阳历农历转换简便方法
阳历农历转换简便方法阳历和农历是两种不同的日历系统,阳历是一种以地球绕太阳公转周期为基础的日历系统,而农历是一种以月亮的周期为基础的日历系统。
在进行阳历和农历的转换时,需要考虑到两种日历系统的差异和规律。
下面将介绍一种简便的方法来进行阳历和农历的转换。
首先,我们来看阳历转农历的方法。
阳历转农历主要涉及到年份、月份和日期的转换。
具体步骤如下:1. 首先确定待转换的阳历日期,包括年份、月份和日期。
2. 检查是否为闰年,闰年的判断规则是:公历年份能够被4整除但不能被100整除,或者能够被400整除的年份为闰年。
如果待转换的年份是闰年,则在后面的步骤中月份的天数需要进行调整。
3. 农历每年的正月初一对应的阳历日期不同,所以需要首先确定农历某一年对应的正月初一的阳历日期。
- 可以查找一些农历和阳历的对应表,查找待转换的年份对应的正月初一的阳历日期。
- 也可以使用一些公式进行计算,但比较复杂,具体公式可以在一些相关书籍或网站中查找。
4. 在确定了农历的正月初一对应的阳历日期之后,就可以根据待转换的阳历日期和正月初一的阳历日期进行计算,得出对应的农历日期。
接下来,我们来看农历转阳历的方法。
农历转阳历主要涉及到年份、月份和日期的转换。
具体步骤如下:1. 首先确定待转换的农历日期,包括年份、月份和日期。
2. 首先确定转换的年份是否为闰年,闰年的判断方法同上述阳历转农历中的判断方法。
3. 确定农历某一年对应的正月初一的阳历日期。
4. 根据待转换的农历日期和正月初一的阳历日期进行计算,得出对应的阳历日期。
综上所述,阳历和农历的转换需要注意年份是否为闰年以及确定正月初一的阳历日期。
转换的方法可以通过查找对应表或使用一些公式进行计算。
如果只是简单的进行阳历和农历的转换,可以参考一些在线的农历转换工具或手机应用。
如果需要深入了解阳历和农历的转换原理以及计算方法,可以查阅相关书籍或网站。
希望以上内容能够对您有所帮助。
最新最准公历和农历转换算法详解
最新最准公历和农历转换算法详解公历(阳历)和农历(阴历)是中国传统的两种历法,公历采用太阳历,以地球绕太阳运行为基础,而农历是以月球运行为基础。
公历更准确地反映了太阳运行的变化,而农历则更加贴近农业生产和民俗习俗的需求。
公历和农历之间的转换涉及到一个重要的问题,即如何确定其中一年是闰年还是平年,以及每个月有多少天。
因为农历中的月份天数不规则,而公历中的月份天数相对固定。
最准确的公历和农历转换算法是以历法的数学及历史研究为基础的,它考虑了太阳和月球的运行轨迹,以及历法制订时的政治和文化背景等方面,下面详细介绍这个算法。
1.公历转农历:公历转农历的核心问题是确定其中一年闰月的位置和天数。
一般而言,公历转农历的过程如下:(1)确定公历年份。
(2)根据公历年份的规则,计算闰年的次数。
公历规定,4年一闰,100年不闰,400年又要闰。
因此,可以通过一系列的除法和取余运算,判断其中一年是否是闰年。
(3)确定农历年份。
根据闰年的次数,可以推算其中一年距离公元前一年农历年份的偏移量。
再加上历史上确定的一个公历对应农历年份的偏移量,即可确定农历年份。
(4)确定农历月份。
根据农历月份的规则,即按照一定的数学计算公式,可以确定其中一年的闰月位置。
具体的算法很复杂,涉及到太阳、月球的轨迹计算,需要使用较为复杂的数学运算方法,如三角函数等。
(5)确定农历日期。
在确定了农历月份的基础上,根据农历每个月的天数规则,可以确定其中一天的农历日期。
2.农历转公历:农历转公历也面临着确定闰年的问题。
农历转公历的过程如下:(1)确定农历年份和月份。
根据农历日期,确定农历当前年份和月份。
(2)根据农历年份的规则,计算闰年的次数。
农历中的闰年规则和公历中的规则略有不同,需要根据历史数据和规则进行计算。
(3)确定公历年份。
根据农历年份和闰年的次数,可以推算其中一年距离公元前一年公历年份的偏移量。
再加上历史上确定的一个农历对应公历年份的偏移量,即可确定公历年份。
阴历阳历对照
阴历阳历对照一、概述阴历和阳历是两种不同的历法系统,常用来进行日期计算和农历节日的确定。
阴历是以月亮的周期为基础制定的日历,而阳历则是以太阳的位置为基准的日历。
阴历和阳历在日期的计算方法、历法结构、时间精确度等方面都存在差异。
本文将详细介绍阴历和阳历两种历法的特点,并对照比较它们的差异。
二、阴历的特点阴历,也叫农历或农民历,起源于古代农耕文明。
阴历以月亮的周期为基础,将一个月分为一个月圆到下个月圆之间的时间段,一年则包含了12个月。
阴历的计算方法与太阳的位置无关,而是依靠观测月相变化的规律来推算。
阴历的节气则是根据太阳的位置和地球公转周期来确定的。
由于月亮的运行轨道是椭圆形的,所以阴历的月份长度会有所不同,一般在29到30天之间。
三、阳历的特点阳历,也叫公历、格里高利历,是西方文化中广泛使用的日历系统。
阳历以太阳的位置为基准,以地球绕太阳运行一周为一个年周期,将一年分为12个月,每个月的天数则根据月亮的运行轨道和地球的公转周期确定。
阳历的计算方法更为精确,每个月的平均天数为30.4375天。
四、阴历和阳历的对比1. 历法结构阴历的月份是基于月相的变化来划分的,一个月从一轮满月到下一个满月之间的时间段。
而阳历的月份则是根据月亮的运行轨道和地球的公转周期计算的。
阴历的一年通常包含12个月,每个月大约有29到30天;而阳历的一年有365天(普通年)或366天(闰年),每个月的天数不一定相等。
2. 时间精确度阳历的计算方法比阴历更为精确,每个月的平均天数为30.4375天,年份的长度也更为准确。
而阴历的计算方法则是基于月相的变化,并不能准确地反映出地球的公转周期。
因此,在阴历和阳历之间进行日期的转换时,容易产生误差。
3. 确定节气和节日阴历和阳历在确定节气和节日方面也存在差异。
阳历的节气是根据太阳的位置和地球公转周期来确定的,每个节气的日期都是固定的。
而阴历的节气则是根据太阳和月亮的位置关系来推算的,每个节气的日期会有所浮动。
公历转农历方法
初一,以月望为十五(大月为十六日),以月晦为二十九日(大月为三十日)。
然而目前记时通常用阳历日期表达,如欲将阳历日期换算成阴历日期可以用以下两种方法:其一是查《新编万年历》,如查1984年6月8日是阴历几日?翻开万年历6月10日是阴历十一,则逆推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即是阴历二十七日。
蔡勒(Zeller)公式:是一个计算星期的公式。
随便给一个日期,就能用这个公式推算出是星期几。
蔡勒公式如下:W = [ C/4 ] - 2C + y + [ y/4 ] + [ 13 * (M + 1) / 5] + d -1公式中的符号含义如下:W: 星期;w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六C: 世纪-1(前两位数)y: 年(后两位数)m: 月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算)d: 日[ ]代表取整,即只要整数部分。
下面以中华人民共和国成立100周年纪念日那天(2049年10月1日)来计算是星期几,过程如下:w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1=49+[49/4]+[20/4]-2×20+[26×(10+1)/10]+1-1=49+[12.25]+5-40+[28.6]=49+12+5-40+28=54 (除以7余5)即2049年10月1日(100周年国庆)是星期五。
根据公历日期计算农历年生肖及公历转换农历的方法
日期农历月份[$-130000]格式验证1[$-130000]格式验证2TEXT(A2,"[$-130000]m-d")=1898+MATCH(要转换的公历日期,{0;31;416;770;1125;1508;1862;2217;2601;2955;3310;3694;4048;4432;4786;5140;5524;5878;6233;6617;6972;7356;7710;8064;8448;8802;9156;9541;9895;10250;10634;10988;11371;11725;12080;12464;12819;13173;13557;13911;14295;14649;15003;15387;15742;16096;16481;16835;17189;17573;17927;18311;18665;19020;19404;19758;20113;20497;20851;21234;21589;21943;22327;22682;23036;23420;23775;24128;21900-1-31鼠年春节1899FALSE13-16根据阳历生日1901-2-19牛年春节1901TRUE1-161902-2-8虎年春节1902TRUE1-171903-1-29兔年春节1902FALSE13-181904-2-16龙年春节1904TRUE1-171905-2-4蛇年春节1904FALSE13-171906-1-25马年春节1905FALSE12-161907-2-13羊年春节1907TRUE1-171908-2-2猴年春节1907FALSE13-161909-1-22鸡年春节1908FALSE12-171910-2-10狗年春节1910TRUE1-181911-1-30猪年春节1910FALSE13-181912-2-18鼠年春节1912TRUE1-181914-1-26虎年春节1913FALSE13-16 1915-2-14兔年春节1915TRUE1-17 1916-2-3龙年春节1915FALSE13-16 1917-1-23蛇年春节1916FALSE12-17 1918-2-11马年春节1918TRUE1-17 1919-2-1羊年春节1918FALSE13-18 1920-2-20猴年春节1920TRUE1-18 1921-2-8鸡年春节1921TRUE1-17 1922-1-28狗年春节1921FALSE13-16 1923-2-16猪年春节1923TRUE1-17 1924-2-5鼠年春节1923FALSE13-17 1925-1-24牛年春节1924FALSE12-16 1926-2-13虎年春节1926TRUE1-17 1927-2-2兔年春节1926FALSE13-17 1928-1-23龙年春节1927FALSE12-18 1929-2-10蛇年春节1929TRUE1-17 1930-1-30马年春节1929FALSE13-17 1931-2-17羊年春节1931TRUE1-17 1932-2-6猴年春节1932TRUE1-16 1933-1-26鸡年春节1932FALSE13-17 1934-2-14狗年春节1934TRUE1-17 1935-2-4猪年春节1934FALSE13-17 1936-1-24鼠年春节1935FALSE12-17 1937-2-11牛年春节1937TRUE1-16 1938-1-31虎年春节1937FALSE13-16 1939-2-19兔年春节1939TRUE1-17 1940-2-8龙年春节1940TRUE1-17 1941-1-27蛇年春节1940FALSE13-16 1942-2-15马年春节1942TRUE1-16 1943-2-5羊年春节1942FALSE13-17 1944-1-25猴年春节1943FALSE12-16 1945-2-13鸡年春节1945TRUE1-17 1946-2-2狗年春节1945FALSE13-17 1947-1-22猪年春节1946FALSE12-18 1948-2-10鼠年春节1948TRUE1-18 1949-1-29牛年春节1948FALSE13-17 1950-2-17虎年春节1950TRUE1-17 1951-2-6兔年春节1951TRUE1-16 1952-1-27龙年春节1951FALSE13-17 1953-2-14蛇年春节1953TRUE1-16 1954-2-3马年春节1953FALSE13-16 1955-1-24羊年春节1954FALSE12-18 1956-2-12猴年春节1956TRUE1-18 1957-1-31鸡年春节1956FALSE13-18 1958-2-18狗年春节1958TRUE1-17 1959-2-8猪年春节1959TRUE1-17 1960-1-28鼠年春节1960TRUE1-1 1961-2-15牛年春节1961TRUE1-1 1962-2-5虎年春节1962TRUE1-1 1963-1-25兔年春节1963TRUE1-1 1964-2-13龙年春节1964TRUE1-11966-1-21马年春节1965FALSE12-30 1967-2-9羊年春节1967TRUE1-1 1968-1-30猴年春节1968TRUE1-1 1969-2-17鸡年春节1969TRUE1-1 1970-2-6狗年春节1970TRUE1-1 1971-1-27猪年春节1971TRUE1-1 1972-2-15鼠年春节1972TRUE1-1 1973-2-3牛年春节1973TRUE1-1 1974-1-23虎年春节1974TRUE1-1 1975-2-11兔年春节1975TRUE1-1 1976-1-31龙年春节1976TRUE1-1 1977-2-18蛇年春节1977TRUE1-1 1978-2-7马年春节1978TRUE1-1 1979-1-28羊年春节1979TRUE1-1 1980-2-16猴年春节1980TRUE1-1 1981-2-5鸡年春节1981TRUE1-1 1982-1-25狗年春节1982TRUE1-1 1983-2-13猪年春节1983TRUE1-1 1984-2-2鼠年春节1984TRUE1-1 1985-2-20牛年春节1985TRUE1-1 1986-2-9虎年春节1986TRUE1-1 1987-1-29兔年春节1987TRUE1-1 1988-2-17龙年春节1987FALSE13-30 1989-2-6蛇年春节1989TRUE1-1 1990-1-27马年春节1990TRUE1-1 1991-2-15羊年春节1991TRUE1-1 1992-2-4猴年春节1992TRUE1-1 1993-1-23鸡年春节1993TRUE1-1 1994-2-10狗年春节1994TRUE1-1 1995-1-31猪年春节1995TRUE1-1 1996-2-19鼠年春节1996TRUE1-1 1997-2-7牛年春节1996FALSE12-30 1998-1-28虎年春节1998TRUE1-1 1999-2-16兔年春节1999TRUE1-1 2000-2-5龙年春节2000TRUE1-1 2001-1-24蛇年春节2001TRUE1-1 2002-2-12马年春节2002TRUE1-1 2003-2-1羊年春节2003TRUE1-1 2004-1-22猴年春节2004TRUE1-1 2005-2-9鸡年春节2005TRUE1-1 2006-1-29狗年春节2006TRUE1-1 2007-2-18猪年春节2007TRUE1-1 2008-2-7鼠年春节2008TRUE1-1 2009-1-26牛年春节2009TRUE1-1 2010-2-14虎年春节2010TRUE1-1 2011-2-3兔年春节2011TRUE1-1 2012-1-23龙年春节2012TRUE1-1 2013-2-10蛇年春节2013TRUE1-1 2014-1-31马年春节2014TRUE1-1 2015-2-19羊年春节2015TRUE1-1 2016-2-8猴年春节2016TRUE1-12018-2-16狗年春节2018TRUE1-1 2019-2-5猪年春节2019TRUE1-1 2020-1-25鼠年春节2020TRUE1-1 2021-2-12牛年春节2021TRUE1-1 2022-2-1虎年春节2022TRUE1-1 2023-1-22兔年春节2023TRUE1-1 2024-2-10龙年春节2024TRUE1-1 2025-1-29蛇年春节2025TRUE1-1 2026-2-17马年春节2026TRUE1-1 2027-2-6羊年春节2026FALSE12-30 2028-1-26猴年春节2027FALSE12-30 2029-2-13鸡年春节2029TRUE1-1 2030-2-3狗年春节2030TRUE1-1 2031-1-23猪年春节2031TRUE1-1 2032-2-11鼠年春节2032TRUE1-1 2033-1-31牛年春节2033TRUE1-1 2034-2-19虎年春节2034TRUE1-1 2035-2-8兔年春节2035TRUE1-1 2036-1-28龙年春节2036TRUE1-1 2037-2-15蛇年春节2037TRUE1-1 2038-2-4马年春节2038TRUE1-1 2039-1-24羊年春节2039TRUE1-1 2040-2-12猴年春节2040TRUE1-1 2041-2-1鸡年春节2041TRUE1-1 2042-1-22狗年春节2042TRUE1-1 2043-2-10猪年春节2043TRUE1-1 2044-1-30鼠年春节2044TRUE1-1 2045-2-17牛年春节2045TRUE1-1 2046-2-6虎年春节2046TRUE1-1 2047-1-26兔年春节2047TRUE1-1 2048-2-14龙年春节2048TRUE1-1 2049-2-2蛇年春节2049TRUE1-1 2050-1-23马年春节2050TRUE1-1 2051-2-11羊年春节2051TRUE1-15 2052-2-1猴年春节2051FALSE13-15 2053-2-19鸡年春节2053TRUE1-15 2054-2-8狗年春节2054TRUE1-15 2055-1-28猪年春节2054FALSE13-14 2056-2-15鼠年春节2056TRUE1-14 2057-2-4牛年春节2057TRUE1-14 2058-1-24虎年春节2057FALSE13-14 2059-2-12兔年春节2059TRUE1-14 2060-2-2龙年春节2059FALSE13-15 2061-1-21蛇年春节2060FALSE12-15 2062-2-9马年春节2062TRUE1-14 2063-1-29羊年春节2062FALSE13-14 2064-2-17猴年春节2064TRUE1-15 2065-2-5鸡年春节2065TRUE1-14 2066-1-26狗年春节2065FALSE13-15 2067-2-14猪年春节2067TRUE1-15 2068-2-3鼠年春节2067FALSE13-152070-2-11虎年春节2070TRUE1-15 2071-1-31兔年春节2070FALSE13-14 2072-2-19龙年春节2072TRUE1-15 2073-2-7蛇年春节2073TRUE1-14 2074-1-27马年春节2073FALSE13-14 2075-2-15羊年春节2075TRUE1-14 2076-2-5猴年春节2075FALSE13-15 2077-1-24鸡年春节2076FALSE12-16 2078-2-12狗年春节2078TRUE1-15 2079-2-2猪年春节2078FALSE13-15 2080-1-22鼠年春节2079FALSE12-14 2081-2-9牛年春节2081TRUE1-14 2082-1-29虎年春节2081FALSE13-14 2083-2-17兔年春节2083TRUE1-14 2084-2-6龙年春节2084TRUE1-15 2085-1-26蛇年春节2084FALSE13-16 2086-2-14马年春节2086TRUE1-15 2087-2-3羊年春节2086FALSE13-15 2088-1-24猴年春节2087FALSE12-15 2089-2-10鸡年春节2089TRUE1-14 2090-1-30狗年春节2089FALSE13-13 2091-2-18猪年春节2091TRUE1-14 2092-2-7鼠年春节2092TRUE1-15 2093-1-27牛年春节2092FALSE13-16 2094-2-15虎年春节2094TRUE1-15 2095-2-5兔年春节2095TRUE1-15 2096-1-25龙年春节2095FALSE13-15 2097-2-12蛇年春节2097TRUE1-15 2098-2-1马年春节2097FALSE13-14 2099-1-21羊年春节2098FALSE12-14 2100-2-9猴年春节2100TRUE1-15农历日期顺序初一初二初三初四初五初六初七初八初九初十十一十二十三十五十六十七十八十九二十廿一廿二廿三廿四廿五廿六廿七廿八廿九三十。
公历换算农历方法
公历换算农历方法
公历与农历是两种不同的历法,公历以太阳年作为基准,而农历则以月亮周期为依据。
换算公历和农历的方法相对简单,可以按照以下步骤进行:
1. 首先,确定需要换算的年份和月份。
2. 求出该年年初到当月之间的天数总和。
例如,假设需要换算的是2022年2月,那么该年年初到2月底有几天呢?可以通
过查看公历的日历或者使用计算工具来得到答案。
3. 计算出农历年份的年份,这一步需要根据农历年历表进行查询。
农历年份有一个十二年一个周期的循环,每个周期中的年份对应着十二生肖。
例如,2022年是中国农历中的“壬寅年”。
4. 利用农历年份的信息,可以根据农历年历表查找当年的正月初一对应的公历日期。
以正月初一为基准,加上经过的天数,就可以得到换算后的公历日期。
例如,假设2022年农历正月
初一对应的公历日期是2月1日,再加上2月份的天数,就可
以得到农历2月的公历换算结果。
需要注意的是,农历每个月的长度是不固定的,有的月份为
29天,有的月份为30天。
因此,在换算时要特别留意每个月
的天数差异。
此外,还需要注意润月的情况,有时候会出现闰月,润月会导致农历多出一个月,所以在换算时要特别注意闰月的情况。
Excel公历转农历阳历转阴历精品文档15
参看一:可以这样试一下:EXCEL200冲可以直接做到,例如TEXT(日期,"[$-130000]e-m-d"),可返回日期的阿拉伯数字的农历年月日,中文农历转换公式如下:B2单元格=MID(" 庚辛壬癸甲乙丙丁戊己",MOD(TEXT(A2,"[$-130000]e"),10)+1,1)&MID(" 申酉戌亥子丑寅卯辰巳午未",M0D(TEXT(A2,"[$-130000]e"),12)+1,1)&TEXT(A2,"[dbnum1][$-130000] 年M月"&IF(-TEXT(A2,"[$-130000]d")v-10,," 初")&"D 日")此公式仅EXCEL2007以使用,EXCEL2003及以下不能正常使用上面那个公式好像有问题,可以试一下这个:参看二:日期在A2,这个公式在B2=CHOOSE(MOD(YEAR(LEFT(TEXT(A2,"[$-130000]yyyy年mm月"&IF(LEN(--TEXT(A2,"[$-130000]dd"))=1," 初","")&"dd"),4)&"-"&MID(TEXT(A2,"[$-130000]yyyy 年mmM"&IF(LEN(--TEXT(A2,"[$-130000]dd"))=1," 初","")&"dd"),6,2)&"-"&RIGHT(TEXT(A2,"[$-130000]yyyy 年mmM"&IF(LEN(--TEXT(A2,"[$-130000]dd"))=1," 初","")&"dd"),2))-1900,10)+1," 庚","辛壬"," 癸"," 甲"," 乙"," 丙"," 丁"," 戊","II II")&CHOOSE(MOD(YEAR(LEFT(TEXT(A2,"[$-130000]yyyy年mm月"&IF(LEN(--TEXT(A2,"[$-130000]dd"))=1," 初年mm 月II II 寅"," 卯"," 辰", 巳"," 午"," 未","申"," 酉"," 戌"," 亥 ","")&"dd"),4)&"-"&MID(TEXT(A2,"[$-130000]yyyy "&IF(LEN(--TEXT(A2,"[$-130000]dd"))=1," 初&"dd"),6,2)&叮&RIGHT(TEXT(A2,"[$-130000]yyyy年 mmM "&IF(LEN(--TEXT(A2,"[$-130000]dd"))=1," 初","")&"dd"),2))-1900,12)+1," 子丑")&TEXT(A2,"[dbnum1][$-130000]年 m 月"&IF(--TEXT(A2,H [$-130000]d H )<11,"初 ","")&TEXT(A2,"[dbnum1][$-130000]d 日")) 二CHOOSE(MOD(YEAR(LEFT(TEXT(A1[$-130000]yyyy 年 mm 月"&IF(LEN(--TEXT(A11,"[$-130000]dd"))=1,"初","") &"dd"),4)&"-"&MID(TEXT(A11,"[$-130000]yyyy年 mm 月" &IF(LEN(--TEXT(A11,"[$-130000]dd"))=1,"初","") &"dd"),6,2)&"-"&RIGHT(TEXT(A11,"[$-130000]yyyy年 mm 月" &IF(LEN(--TEXT(A11,"[$-130000]dd"))=1," 初","")&"dd"),2))-1900,10)+1," 庚"," 辛"," 壬"," 癸"," 甲"," 乙"," 丙"," 丁"," 戊"," 己")&CHOOSE(MOD(YEAR(LEFT(TEXT(A11,"[$-130000]yyy 年 mm 月 "&IF(LEN(--TEXT(A11,"[$-130000]dd"))=1,"初","") &"dd"),4)&"-"&MID(TEXT(A11,"[$-130000]yyyy 年 mm 月"&IF(LEN(--TEXT(A11,"[$-130000]dd"))=1," 初","")&RIGHT(TEXT(A11,"[$-130000]yyyy 年mn月"&IF(LEN(--TEXT(A11,"[$-130000]dd"))=1," 初","")&"dd"),2))-1900,12)+1," 子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥")&TEXT(A11,"[dbnum1][$-130000] 年m月"& IF(--TEXT(A11,"[$-130000]d")<11," 初","")& TEXT(A11,"[db num1][$-130000]d"))Excel公历转农历(阳历转阴历)用的是excel中的自定义函数,代码如下:Public Fun ction No ngLi(Optio nal XX_DATIAs Date)Dim MonthAdd(11), NongliData(99), TianGan(9), DiZhi(11), ShuXiang(11), DayNam e(30), Mon Name(12)Dim curTime, curYear, curM on th, curDayDim Go ngliStr, Non gliStr, Non gliDayStrDim i, m, n, k, isE nd, bit, TheDate'获取当前系统时间curTime = XX_DATETianGan(0)=" 甲TianGan⑴=" 乙TianGan(2)=" 丙TianGan(3)=" 丁Tia nGa n(4)= "戊" Tia nGa n(5)= "己" Tia nGa n(6)= "庚" Tia nGa n⑺= " 辛" Tia nGa n(8)= "壬" Tia nGa n(9)= " 癸"'地支名称DiZhi(O)=" 子" DiZhi(1)=" 丑" DiZhi(2)=" 寅" DiZhi(3)=" 卯" DiZhi(4)=" 辰" DiZhi(5)=" 巳" DiZhi(6)=" 午" DiZhi(7)=" 未" DiZhi(8)=" 申" DiZhi(9)=" 酉" DiZhi(1O)=" 戌" DiZhi(11)=" 亥" '属相名称ShuXia ng(O) ="鼠" ShuXia ng(1) =" 牛" ShuXia ng(2) =" 虎"ShuXian g(3)= " 兔" ShuXian g(4)= "龙" ShuXian g(5)= "蛇" ShuXian g(6)= "马" ShuXian g(7)= " 羊" ShuXian g(8)= "猴" ShuXian g(9)= " 鸡" ShuXian g(10) =" 狗" ShuXian g(11) ="猪" '农历日期名DayName(O)= "*" DayName(1)= "初一" DayName(2)= "初二" DayName(3)= "初三" DayName(4)= "初四" DayName(5)= "初五" DayName(6)= "初六" DayName(7)= "初七" DayName(8)= "初八" DayName(9)= "初九" DayName(IO) ="初十DayName(11) -"十DayName(12) ="十二DayName(13): ="十三" DayName(14): ="十四" DayName(15): ="十五" DayName(16): ="十六" DayName(17): ="十七" DayName(18): ="十八" DayName(19): ="十九" DayName(20): ="二十" DayName(21): ="廿一" DayName(22): ="廿二" DayName(23): ="廿三" DayName(24): ="廿四" DayName(25): ="廿五" DayName(26): ="廿六" DayName(27): ="廿七" DayName(28): ="廿八" DayName(29): ="廿九" DayName(30): ="三十" '农历月份名MonN ame(O)= "*" MonN ame(1)= "正" MonN ame(2)= 1! ------- 1! MonN ame(3)= " - "MonN ame(4)= "四" MonN ame(5)= "五" MonN ame(6)= "六" MonN ame(7)= "七" MonN ame(8)= "八" MonN ame(9)= "九" MonN ame(10) ="十" MonN ame(11) -"十- MonN ame(12) ="腊" '公历每月前面的天数Mon thAdd(O)= 0 Mon thAdd(1)= 31 Mon thAdd(2)= 59 Mon thAdd(3)= 90 Mon thAdd(4)= 120 Mon thAdd(5)= 151 Mon thAdd(6)= 181 Mon thAdd(7)= 212 Mon thAdd(8)= 243 Mon thAdd(9)= 273 Mon thAdd(1O) =304 Mon thAdd(11) =334 '农历数据Non gliData(O) = 2635 Non gliData⑴=333387 No ngliData(2) = 1701 No ngliData(3) = 1748 No ngliData(4) = 267701 No ngliData(5) = 694No ngliData(6) = 2391 Non gliData(7) = 133423 No ngliData(8) = 1175 Non gliData(9) = 396438 No ngliData(10) = 3402 No ngliData(11) = 3749 No ngliData(12) = 331177 No ngliData(13) = 1453 Non gliData(14) = 694 No ngliData(15) = 201326 Non gliData(16) = 2350 No ngliData(17) = 465197 No ngliData(18) = 3221No ngliData(22) = 1386No ngliData(20) = 400202 No ngliData(21) = 2901No ngliData(45)No ngliData(24) No ngliData(25) No ngliData(26) No ngliData(27) No ngliData(28) No ngliData(29) No ngliData(30) No ngliData(31) No ngliData(32) No ngliData(33) No ngliData(34) No ngliData(35) No ngliData(36) No ngliData(37) No ngliData(38) No ngliData(39) No ngliData(40) No ngliData(41)No ngliData(45)No ngliData(45)605 2349 137515 2709 464533 1738 2901 330421 1242 2651 199255 1323 529706 3733 1706 398762 2741 1206 267438 2647 1318 204070No ngliData(42)No ngliData(43)No ngliData(44)No ngliData(46) = 3477 No ngliData(47)No ngliData(48)No ngliData(49)No ngliData(50)No ngliData(51)No ngliData(52)No ngliData(53)No ngliData(54)No ngliData(55)No ngliData(56)No ngliData(57)No ngliData(58)No ngliData(59)No ngliData(60)No ngliData(61)No ngliData(62)No ngliData(63)No ngliData(64)No ngliData(68) 2391No ngliData(68)2391 461653 1386 2413 330077 1197 2637 268877 3365 531109 2900 2922 398042 2395 1179 267415 2635 661067 1701 1748 No ngliData(65)No ngliData(66)No ngliData(67)Non gliData(69) = 3300311175 No ngliData(70)1611 No ngliData(71)200010 No ngliData(72)3749 No ngliData(73)527717 No ngliData(74)1452 No ngliData(75)2742 No ngliData(76)332397 No ngliData(77)2350 No ngliData(78)3222 No ngliData(79)268949 No ngliData(80)3402 No ngliData(81)3493 No ngliData(82)133973 No ngliData(83)1386 No ngliData(84)464219 No ngliData(85)605 No ngliData(86)2349 No ngliData(87)334123 No ngliData(91) 267946No ngliData(88)No ngliData(89)No ngliData(90)No ngliData(91) 267946No ngliData(92) = 2773Non gliData(93) = 592565No ngliData(94) = 1210No ngliData(95) = 2651Non gliData(96) = 395863No ngliData(97) = 1323No ngliData(98) = 2707Non gliData(99) = 265877'生成当前公历年、月、日==> GongliStrcurYear = Y ear(curTime)curM onth = Mon th(curTime)curDay = Day(curTime)Gon gliStr = cur Year & ”年”If (curMo nth < 10) The nGongliStr = GongliStr & "0" & curMonth & " 月" ElseGo ngliStr = Gon gliStr & curMo nth & " 月"End IfIf (curDay < 10) The nGo ngliStr = Go ngliStr & "0" & curDay & " 日"ElseGo ngliStr = Go ngliStr & curDay & " 日"End If'计算到初始时间1921年2月8日的天数:1921-2-8(正月初一)TheDate = (curYear - 1921) * 365 + In t((curYear -1921)/4) + curDay + Month Add(curMo nth - 1) - 38If ((curYear Mod 4) = 0 And curMonth > 2) ThenTheDate = TheDate + 1End If'计算农历天干、地支、月、日isE nd = 0m = 0DoIf (No ngliData(m) < 4095) Thenk = 11Elsek = 12End Ifn 二kDoIf (n < 0) The nExit DoEnd If'获取NongliData(m)的第n个二进制位的值bit = No ngliData(m)For i = 1 To n Step 1bit = In t(bit / 2)Nextbit = bit Mod 2If (TheDate <= 29 + bit) The nisE nd = 1Exit DoEnd IfTheDate = TheDate - 29 - bitn 二n - 1LoopIf (isE nd = 1) ThenExit DoEnd Ifm = m + 1LoopcurYear = 1921 + mcurMo nth = k - n + 1curDay = TheDateIf (k = 12) The nIf (curM on th = (In t(No ngliData(m) / 65536) + 1)) The n curMo nth = 1 - curMo nthElseIf (curM on th > (In t(No ngliData(m) / 65536) + 1)) Then curMo nth = curMo nth - 1 End IfEnd If'生成农历天干、地支、属相==> NongliStrNo ngliStr =" 农历"& Tia nGan (((curYear - 4) Mod 60) Mod 10) & DiZhi(((curYear-4) Mod 60) Mod 12) & " 年"NongliStr = NongliStr & "(" & ShuXiang(((curYear - 4) Mod 60) Mod 12) & ")"'生成农历月、日==> NongliDayStrIf (curM on th < 1) The nNon gliDayStr =" 闰” & Mo nN ame(-1 * curMo nth)ElseNo ngliDayStr = MonN ame(curMo nth)End IfNongliDayStr = NongliDayStr & ” 月”No ngliDayStr = No ngliDayStr & DayName(curDay)Non gLi = Non gliStr & No ngliDayStrEnd Fun cti on其中还有个2007版的公式也可以,不过有时候会出错,公式如下:二TEXT(A1,"[$-130000]yyyy 年m月"&IF(LEN(--TEXT(A1,"[$-130000]dd"))=1," 初","")& "d")添加评论(0)希望以上资料对你有所帮助,附励志名言3条:1、生命对某些人来说是美丽的,这些人的一生都为某个目标而奋斗2、推销产品要针对顾客的心,不要针对顾客的头。
农历阳历转换日期查询
农历阳历转换日期查询
在日常生活中,我们都会使用日期来表示一些重要的事件,如过年、生日、结婚等,甚至都使用阴历和阳历来表示。
农历阳历转换日期查询是我们经常使用的日期类型之一,方便我们查询不同的日期。
一、农历阳历转换日期查询
1. 公历和农历的区别
壹、农历是指中国古代依根据月相循环而变化的历法,是中国及东亚传统文化上历史最为悠久的历法;而公历是指按照公元前46年左右July底业出台了《罗马历法》所创,以公元为界限,西元纪年,后来广泛应用于世界各地。
2. 公历和农历互转方法
贰、农历转换为公历只需要输入某年某月某日的农历日期,系统即可自动计算出公历日期;反之,公历转换农历也只需要输入某年某月某日的公历日期,即可计算出农历日期。
3. 查询方法
叁、农历阳历转换日期查询可以使用许多网上工具,其中最常用的是在搜索引擎上搜索关键词“农历阳历转换日期查询”,然后从搜索结果中点击查询工具进行查询;也可以使用支持阴历阳历日期转换功能的APP,输入某个注明日期,即可进行查询;还可以通过直接输入农历日期或者公历日期,即能自动转换得到另外一种日期的查询工具等。
总之,农历阳历转换日期查询是我们日常生活不可分割的一部分,不
管是农历转换为公历,还是公历转换为农历,我们都可以从网上工具、APP、查询工具等多种方式,轻松得到我们想要查询的结果。
农历是指阴历还是阳历
农历是指阴历还是阳历
农历是阴历,公历才是指阳历。
农历是我国传统历法,⼜称阴历、华历、夏历、汉历、中历等。
农历和阳历是两种不同的历法计算,他们的参照物选取的不⼀样。
农历是阴历还是阳历
通常平时我们说的农历就是阴历,但是实际上农历与阴历是不同的。
阴历以朔望的周期来定⽉,⽤置闰的办法使年平均长度接近太阳回归年,⼜有夏历、汉历等名称。
阴历是中国⽬前与公历并⾏使⽤的⼀种历法,虽然⼈们习称“阴历”,但其实是阴阳历的⼀种,并⾮按⽉相周期制定历法的阴历。
除了清明节是按照农历⼆⼗四节⽓的“清明”制定的以外,中国其他传统节⽇是以阴历制定的,⾄今汉字⽂化圈的国家和民族多仍庆祝农历的传统节⽇,如春节、端午节、中秋节、重阳节等。
农历和阳历是两种不同的历法计算,他们的参照物选取的不⼀样。
农历是取⽉相的变化周期即朔望⽉为⽉的长度,加⼊⼲⽀历“⼆⼗四节⽓”成分,参考太阳回归年为年的长度,通过设置闰⽉以使平均历年与回归年相适应。
⽽阳历是以太阳作为参照设⽴,根据太阳的周期变化⽽制定的历法。
阴历
阴历,是根据⽉相圆缺变化的周期(即朔望⽉)来制订的。
因为古⼈称⽉亮为太阴,所以⼜有太阴历之称,是纯粹的阴历,我国使⽤"农历",⼀般⼈叫它"阴历",那是不对的。
农历不是⼀种纯粹的阴历,⽽是"阴阳历"。
阴历把⽉亮圆缺循环⼀次的时间算做⼀个⽉,12个⽉算做⼀年。
然⽽⽉亮圆缺循环⼀次--⼀个朔望⽉,是29天12时44分3秒,⽐29天多,⼜⽐30天少。
为⽅便,阴历把⽉份分成⼤⽉和⼩⽉两种,逢单的⽉是⼤⽉30天,逢双的⽉是⼩⽉29天,⼀年共是354天。
阴历阳历转换阴阳历转换公历农历转换
阴历阳历转换阴阳历转换公历农历转换我们现行的公历,是一种太阳历又叫阳历,它是以地球绕太阳公转的运动周期回归年为基础而制定的历法,其历年近似等于回归年。
我国现行的另一历法:农历,就是用严格的朔望周期来定月,又用设置闰月的办法使年的平均长度与回归年相近,兼有阴历月和阳历年的性质,因此在实质上是一种阴阳合历。
由于它的制定是以月亮运动周期为主,同时又兼顾了地球绕太阳运动的周期,所以既能使每个月份基本与季节变化相符合,又使每一月份的日期与月相对应。
阴阳历换算,农历是中国的一种传统历法,又称夏历,民间也称阴历。
农历固定地把朔的时刻所在日子作为月的第一天──初一日,即月初所在的日期是按太阳和月亮的位置来推定的,不是机械地安排的。
这样就使一个月中任何一天都含有月相的意义,即初一是无月的,十五左右都是圆月的。
一个月就以朔望月为主,朔望月的平均长度约为29.53059日,所以有的月份是30日,称大月;有的月份是29日,称小月。
12个月为一年,一个历年共354日或355日。
什么是农历?农历,中国传统历法之一,也被称为“阴历”、“殷历”、“古历”、“黄历”、“夏历”和“旧历”等。
农历属于阴阳历并用,一方面以月球绕地球运行一周为一“月”,平均月长度等于“朔望月”,这一点与阴历原则相同,所以也叫“阴历”;另一方面设置“闰月”以使每年的平均长度尽可能接近回归年,同时设置二十四节气以反映季节的变化特征,因此农历集阴、阳两历的特点于一身,也被称为“阴阳历”。
至今几乎全世界所有华人以及朝鲜半岛和越南等国家,仍然使用农历推算传统节日如春节、中秋节、端午节等节日。
什么是公历?答:公历是现在国际通用的历法,又称格列历,通称阳历。
“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。
我国从辛亥革命后即自民国元年采用阳历,故又名曰“国历”。
为与我国旧有之历相对称,故又名曰“新历”。
1949年正式规定公元纪年。
公历农历转换
constSTART_YEAR=1901;END_YEAR=2050;//返回iYear年iMonth月的天数1年1月--- 65535年12月function MonthDays(iYear,iMonth:Word):Word;//返回阴历iLunarYer年阴历iLunarMonth月的天数,如果iLunarMonth为闰月,//高字为第二个iLunarMonth月的天数,否则高字为0 1901年1月---2050年12月function LunarMonthDays(iLunarYear,iLunarMonth:Word):Longword;//返回阴历iLunarYear年的总天数1901年1月---2050年12月function LunarYearDays(iLunarYear:Word):Word;//返回阴历iLunarYear年的闰月月份,如没有返回0 1901年1月---2050年12月function GetLeapMonth(iLunarYear:Word):Word;//把iYear年格式化成天干记年法表示的字符串procedure FormatLunarYear(iYear:Word;var pBuffer:string);overload;function FormatLunarYear(iYear:Word):string;overload;//把iMonth格式化成中文字符串procedure FormatMonth(iMonth:Word;var pBuffer:string;bLunar:Boolean=True);overload; function FormatMonth(iMonth:Word;bLunar:Boolean=True):string;overload;//把iDay格式化成中文字符串procedure FormatLunarDay(iDay:Word;var pBuffer:string);overload; 字串4function FormatLunarDay(iDay:Word):string;overload;//计算公历两个日期间相差的天数1年1月1日--- 65535年12月31日functionCalcDateDiff(iEndYear,iEndMonth,iEndDay:Word;iStartYear:Word=START_YEAR;iStartMonth: Word=1;iStartDay:Word=1):Longword;overload;function CalcDateDiff(EndDate,StartDate:TDateTime):Longword;overload;//计算公历iYear年iMonth月iDay日对应的阴历日期,返回对应的阴历节气0-24//1901年1月1日---2050年12月31日function GetLunarHolDay(InDate:TDateTime):string;overload;function GetLunarHolDay(iYear,iMonth,iDay:Word):string;overload;//private function--------------------------------------//计算从1901年1月1日过iSpanDays天后的阴历日期procedure l_CalcLunarDate(var iYear,iMonth,iDay:Word;iSpanDays:Longword);//计算公历iYear年iMonth月iDay日对应的节气0-24,0表不是节气function l_GetLunarHolDay(iYear,iMonth,iDay:Word):Word;implementationvar//数组gLunarDay存入阴历1901年到2100年每年中的月天数信息,//阴历每月只能是29或30天,一年用12(或13)个二进制位表示,对应位为1表30天,否则为29天字串4gLunarMonthDay:array[0..149] of Word=(//测试数据只有1901.1.1 --2050.12.31$4ae0, $a570, $5268, $d260, $d950, $6aa8, $56a0, $9ad0, $4ae8, $4ae0, //1910$a4d8, $a4d0, $d250, $d548, $b550, $56a0, $96d0, $95b0, $49b8, $49b0, //1920$a4b0, $b258, $6a50, $6d40, $ada8, $2b60, $9570, $4978, $4970, $64b0, //1930$d4a0, $ea50, $6d48, $5ad0, $2b60, $9370, $92e0, $c968, $c950, $d4a0, //1940$da50, $b550, $56a0, $aad8, $25d0, $92d0, $c958, $a950, $b4a8, $6ca0, //1950$b550, $55a8, $4da0, $a5b0, $52b8, $52b0, $a950, $e950, $6aa0, $ad50, //1960$ab50, $4b60, $a570, $a570, $5260, $e930, $d950, $5aa8, $56a0, $96d0, //1970$4ae8, $4ad0, $a4d0, $d268, $d250, $d528, $b540, $b6a0, $96d0, $95b0, //1980$49b0, $a4b8, $a4b0, $b258, $6a50, $6d40, $ada0, $ab60, $9370, $4978, //1990$4970, $64b0, $6a50, $ea50, $6b28, $5ac0, $ab60, $9368, $92e0, $c960, //2000$d4a8, $d4a0, $da50, $5aa8, $56a0, $aad8, $25d0, $92d0, $c958, $a950, //2010 字串6$b4a0, $b550, $b550, $55a8, $4ba0, $a5b0, $52b8, $52b0, $a930, $74a8, //2020$6aa0, $ad50, $4da8, $4b60, $9570, $a4e0, $d260, $e930, $d530, $5aa0, //2030$6b50, $96d0, $4ae8, $4ad0, $a4d0, $d258, $d250, $d520, $daa0, $b5a0, //2040$56d0, $4ad8, $49b0, $a4b8, $a4b0, $aa50, $b528, $6d20, $ada0, $55b0); //2050//数组gLanarMonth存放阴历1901年到2050年闰月的月份,如没有则为0,每字节存两年gLunarMonth:array[0..74] of Byte=($00, $50, $04, $00, $20, //1910$60, $05, $00, $20, $70, //1920$05, $00, $40, $02, $06, //1930$00, $50, $03, $07, $00, //1940$60, $04, $00, $20, $70, //1950$05, $00, $30, $80, $06, //1960$00, $40, $03, $07, $00, //1970$50, $04, $08, $00, $60, //1980$04, $0a, $00, $60, $05, //1990$00, $30, $80, $05, $00, //2000$40, $02, $07, $00, $50, //2010$04, $09, $00, $60, $04, //2020$00, $20, $60, $05, $00, //2030$30, $b0, $06, $00, $50, //2040字串5$02, $07, $00, $50, $03); //2050//数组gLanarHoliDay存放每年的二十四节气对应的阳历日期//每年的二十四节气对应的阳历日期几乎固定,平均分布于十二个月中// 1月2月3月4月5月6月//小寒大寒立春雨水惊蛰春分清明谷雨立夏小满芒种夏至// 7月8月9月10月11月12月//小暑大暑立秋处暑白露秋分寒露霜降立冬小雪大雪冬至{****************************************************************************** ***节气无任何确定规律,所以只好存表,要节省空间,所以....******************************************************************************* ***}//数据格式说明://如1901年的节气为// 1月2月3月4月5月6月7月8月9月10月11月12月// 6, 21, 4, 19, 6, 21, 5, 21, 6,22, 6,22, 8, 23, 8, 24, 8, 24, 8, 24, 8, 23, 8, 22// 9, 6, 11,4, 9, 6, 10,6, 9,7, 9,7, 7, 8, 7, 9, 7, 9, 7, 9, 7, 8, 7, 15//上面第一行数据为每月节气对应日期,15减去每月第一个节气,每月第二个节气减去15得第二行// 这样每月两个节气对应数据都小于16,每月用一个字节存放,高位存放第一个节气数据,低位存放//第二个节气的数据,可得下表gLunarHolDay:array[0..1799] of Byte=($96, $B4, $96, $A6, $97, $97, $78, $79, $79, $69, $78, $77, //1901$96, $A4, $96, $96, $97, $87, $79, $79, $79, $69, $78, $78, //1902$96, $A5, $87, $96, $87, $87, $79, $69, $69, $69, $78, $78, //1903$86, $A5, $96, $A5, $96, $97, $88, $78, $78, $79, $78, $87, //1904$96, $B4, $96, $A6, $97, $97, $78, $79, $79, $69, $78, $77, //1905$96, $A4, $96, $96, $97, $97, $79, $79, $79, $69, $78, $78, //1906$96, $A5, $87, $96, $87, $87, $79, $69, $69, $69, $78, $78, //1907$86, $A5, $96, $A5, $96, $97, $88, $78, $78, $69, $78, $87, //1908$96, $B4, $96, $A6, $97, $97, $78, $79, $79, $69, $78, $77, //1909$96, $A4, $96, $96, $97, $97, $79, $79, $79, $69, $78, $78, //1910字串2$96, $A5, $87, $96, $87, $87, $79, $69, $69, $69, $78, $78, //1911$86, $A5, $96, $A5, $96, $97, $88, $78, $78, $69, $78, $87, //1912$96, $B4, $96, $A6, $97, $97, $79, $79, $79, $69, $78, $78, //1914$96, $A5, $97, $96, $97, $87, $79, $79, $69, $69, $78, $78, //1915$96, $A5, $96, $A5, $96, $97, $88, $78, $78, $79, $77, $87, //1916$95, $B4, $96, $A6, $96, $97, $78, $79, $78, $69, $78, $87, //1917$96, $B4, $96, $A6, $97, $97, $79, $79, $79, $69, $78, $77, //1918$96, $A5, $97, $96, $97, $87, $79, $79, $69, $69, $78, $78, //1919$96, $A5, $96, $A5, $96, $97, $88, $78, $78, $79, $77, $87, //1920$95, $B4, $96, $A5, $96, $97, $78, $79, $78, $69, $78, $87, //1921$96, $B4, $96, $A6, $97, $97, $79, $79, $79, $69, $78, $77, //1922$96, $A4, $96, $96, $97, $87, $79, $79, $69, $69, $78, $78, //1923$96, $A5, $96, $A5, $96, $97, $88, $78, $78, $79, $77, $87, //1924字串8$95, $B4, $96, $A5, $96, $97, $78, $79, $78, $69, $78, $87, //1925$96, $B4, $96, $A6, $97, $97, $78, $79, $79, $69, $78, $77, //1926$96, $A4, $96, $96, $97, $87, $79, $79, $79, $69, $78, $78, //1927$96, $A5, $96, $A5, $96, $96, $88, $78, $78, $78, $87, $87, //1928$95, $B4, $96, $A5, $96, $97, $88, $78, $78, $79, $77, $87, //1929$96, $B4, $96, $A6, $97, $97, $78, $79, $79, $69, $78, $77, //1930$96, $A4, $96, $96, $97, $87, $79, $79, $79, $69, $78, $78, //1931$96, $A5, $96, $A5, $96, $96, $88, $78, $78, $78, $87, $87, //1932$95, $B4, $96, $A5, $96, $97, $88, $78, $78, $69, $78, $87, //1933$96, $B4, $96, $A6, $97, $97, $78, $79, $79, $69, $78, $77, //1934$96, $A4, $96, $96, $97, $97, $79, $79, $79, $69, $78, $78, //1935$96, $A5, $96, $A5, $96, $96, $88, $78, $78, $78, $87, $87, //1936$95, $B4, $96, $A5, $96, $97, $88, $78, $78, $69, $78, $87, //1937$96, $B4, $96, $A6, $97, $97, $78, $79, $79, $69, $78, $77, //1938 字串1 $96, $A4, $96, $96, $97, $97, $79, $79, $79, $69, $78, $78, //1939$96, $A5, $96, $A5, $96, $96, $88, $78, $78, $78, $87, $87, //1940$95, $B4, $96, $A5, $96, $97, $88, $78, $78, $69, $78, $87, //1941$96, $B4, $96, $A6, $97, $97, $78, $79, $79, $69, $78, $77, //1942$96, $A4, $96, $96, $97, $97, $79, $79, $79, $69, $78, $78, //1943$96, $A5, $96, $A5, $A6, $96, $88, $78, $78, $78, $87, $87, //1944 $95, $B4, $96, $A5, $96, $97, $88, $78, $78, $79, $77, $87, //1945$95, $B4, $96, $A6, $97, $97, $78, $79, $78, $69, $78, $77, //1946$96, $B4, $96, $A6, $97, $97, $79, $79, $79, $69, $78, $78, //1947$96, $A5, $A6, $A5, $A6, $96, $88, $88, $78, $78, $87, $87, //1948$A5, $B4, $96, $A5, $96, $97, $88, $79, $78, $79, $77, $87, //1949 $95, $B4, $96, $A5, $96, $97, $78, $79, $78, $69, $78, $77, //1950$96, $B4, $96, $A6, $97, $97, $79, $79, $79, $69, $78, $78, //1951$96, $A5, $A6, $A5, $A6, $96, $88, $88, $78, $78, $87, $87, //1952 字串1 $A5, $B4, $96, $A5, $96, $97, $88, $78, $78, $79, $77, $87, //1953$96, $B4, $96, $A6, $97, $97, $78, $79, $79, $69, $78, $77, //1955 $96, $A5, $A5, $A5, $A6, $96, $88, $88, $78, $78, $87, $87, //1956$A5, $B4, $96, $A5, $96, $97, $88, $78, $78, $79, $77, $87, //1957 $95, $B4, $96, $A5, $96, $97, $88, $78, $78, $69, $78, $87, //1958 $96, $B4, $96, $A6, $97, $97, $78, $79, $79, $69, $78, $77, //1959 $96, $A4, $A5, $A5, $A6, $96, $88, $88, $88, $78, $87, $87, //1960$A5, $B4, $96, $A5, $96, $96, $88, $78, $78, $78, $87, $87, //1961 $96, $B4, $96, $A5, $96, $97, $88, $78, $78, $69, $78, $87, //1962 $96, $B4, $96, $A6, $97, $97, $78, $79, $79, $69, $78, $77, //1963 $96, $A4, $A5, $A5, $A6, $96, $88, $88, $88, $78, $87, $87, //1964$A5, $B4, $96, $A5, $96, $96, $88, $78, $78, $78, $87, $87, //1965 $95, $B4, $96, $A5, $96, $97, $88, $78, $78, $69, $78, $87, //1966 $96, $B4, $96, $A6, $97, $97, $78, $79, $79, $69, $78, $77, //1967 $96, $A4, $A5, $A5, $A6, $A6, $88, $88, $88, $78, $87, $87, //1968$A5, $B4, $96, $A5, $96, $96, $88, $78, $78, $78, $87, $87, //1969 $95, $B4, $96, $A5, $96, $97, $88, $78, $78, $69, $78, $87, //1970 $96, $B4, $96, $A6, $97, $97, $78, $79, $79, $69, $78, $77, //1971 $96, $A4, $A5, $A5, $A6, $A6, $88, $88, $88, $78, $87, $87, //1972$A5, $B5, $96, $A5, $A6, $96, $88, $78, $78, $78, $87, $87, //1973 $95, $B4, $96, $A5, $96, $97, $88, $78, $78, $69, $78, $87, //1974 $96, $B4, $96, $A6, $97, $97, $78, $79, $78, $69, $78, $77, //1975 $96, $A4, $A5, $B5, $A6, $A6, $88, $89, $88, $78, $87, $87, //1976$A5, $B4, $96, $A5, $96, $96, $88, $88, $78, $78, $87, $87, //1977 字串5 $95, $B4, $96, $A5, $96, $97, $88, $78, $78, $79, $78, $87, //1978 $96, $B4, $96, $A6, $96, $97, $78, $79, $78, $69, $78, $77, //1979 $96, $A4, $A5, $B5, $A6, $A6, $88, $88, $88, $78, $87, $87, //1980$A5, $B4, $96, $A5, $A6, $96, $88, $88, $78, $78, $77, $87, //1981 $95, $B4, $96, $A5, $96, $97, $88, $78, $78, $79, $77, $87, //1982 $95, $B4, $96, $A5, $96, $97, $78, $79, $78, $69, $78, $77, //1983 $96, $B4, $A5, $B5, $A6, $A6, $87, $88, $88, $78, $87, $87, //1984$A5, $B4, $A6, $A5, $A6, $96, $88, $88, $78, $78, $87, $87, //1985$A5, $B4, $96, $A5, $96, $97, $88, $78, $78, $79, $77, $87, //1986 $95, $B4, $96, $A5, $96, $97, $88, $79, $78, $69, $78, $87, //1987 $96, $B4, $A5, $B5, $A6, $A6, $87, $88, $88, $78, $87, $86, //1988$A5, $B4, $A5, $A5, $A6, $96, $88, $88, $88, $78, $87, $87, //1989$A5, $B4, $96, $A5, $96, $96, $88, $78, $78, $79, $77, $87, //1990 $95, $B4, $96, $A5, $86, $97, $88, $78, $78, $69, $78, $87, //1991字串2$96, $B4, $A5, $B5, $A6, $A6, $87, $88, $88, $78, $87, $86, //1992$A5, $B3, $A5, $A5, $A6, $96, $88, $88, $88, $78, $87, $87, //1993$A5, $B4, $96, $A5, $96, $96, $88, $78, $78, $78, $87, $87, //1994 $95, $B4, $96, $A5, $96, $97, $88, $76, $78, $69, $78, $87, //1995$A5, $B3, $A5, $A5, $A6, $A6, $88, $88, $88, $78, $87, $87, //1997$A5, $B4, $96, $A5, $96, $96, $88, $78, $78, $78, $87, $87, //1998$95, $B4, $96, $A5, $96, $97, $88, $78, $78, $69, $78, $87, //1999$96, $B4, $A5, $B5, $A6, $A6, $87, $88, $88, $78, $87, $86, //2000$A5, $B3, $A5, $A5, $A6, $A6, $88, $88, $88, $78, $87, $87, //2001$A5, $B4, $96, $A5, $96, $96, $88, $78, $78, $78, $87, $87, //2002$95, $B4, $96, $A5, $96, $97, $88, $78, $78, $69, $78, $87, //2003$96, $B4, $A5, $B5, $A6, $A6, $87, $88, $88, $78, $87, $86, //2004$A5, $B3, $A5, $A5, $A6, $A6, $88, $88, $88, $78, $87, $87, //2005 字串3 $A5, $B4, $96, $A5, $A6, $96, $88, $88, $78, $78, $87, $87, //2006$95, $B4, $96, $A5, $96, $97, $88, $78, $78, $69, $78, $87, //2007$96, $B4, $A5, $B5, $A6, $A6, $87, $88, $87, $78, $87, $86, //2008$A5, $B3, $A5, $B5, $A6, $A6, $88, $88, $88, $78, $87, $87, //2009$A5, $B4, $96, $A5, $A6, $96, $88, $88, $78, $78, $87, $87, //2010$95, $B4, $96, $A5, $96, $97, $88, $78, $78, $79, $78, $87, //2011$96, $B4, $A5, $B5, $A5, $A6, $87, $88, $87, $78, $87, $86, //2012$A5, $B3, $A5, $B5, $A6, $A6, $87, $88, $88, $78, $87, $87, //2013$A5, $B4, $96, $A5, $A6, $96, $88, $88, $78, $78, $87, $87, //2014$95, $B4, $96, $A5, $96, $97, $88, $78, $78, $79, $77, $87, //2015$95, $B4, $A5, $B4, $A5, $A6, $87, $88, $87, $78, $87, $86, //2016$A5, $C3, $A5, $B5, $A6, $A6, $87, $88, $88, $78, $87, $87, //2017$A5, $B4, $A6, $A5, $A6, $96, $88, $88, $78, $78, $87, $87, //2018$A5, $B4, $96, $A5, $96, $96, $88, $78, $78, $79, $77, $87, //2019字串2$95, $B4, $A5, $B4, $A5, $A6, $97, $87, $87, $78, $87, $86, //2020$A5, $C3, $A5, $B5, $A6, $A6, $87, $88, $88, $78, $87, $86, //2021$A5, $B4, $A5, $A5, $A6, $96, $88, $88, $88, $78, $87, $87, //2022$A5, $B4, $96, $A5, $96, $96, $88, $78, $78, $79, $77, $87, //2023$95, $B4, $A5, $B4, $A5, $A6, $97, $87, $87, $78, $87, $96, //2024$A5, $C3, $A5, $B5, $A6, $A6, $87, $88, $88, $78, $87, $86, //2025$A5, $B3, $A5, $A5, $A6, $A6, $88, $88, $88, $78, $87, $87, //2026$A5, $B4, $96, $A5, $96, $96, $88, $78, $78, $78, $87, $87, //2027$95, $B4, $A5, $B4, $A5, $A6, $97, $87, $87, $78, $87, $96, //2028$A5, $C3, $A5, $B5, $A6, $A6, $87, $88, $88, $78, $87, $86, //2029$A5, $B3, $A5, $A5, $A6, $A6, $88, $88, $88, $78, $87, $87, //2030$A5, $B4, $96, $A5, $96, $96, $88, $78, $78, $78, $87, $87, //2031$95, $B4, $A5, $B4, $A5, $A6, $97, $87, $87, $78, $87, $96, //2032$A5, $C3, $A5, $B5, $A6, $A6, $88, $88, $88, $78, $87, $86, //2033$A5, $B3, $A5, $A5, $A6, $A6, $88, $78, $88, $78, $87, $87, //2034$A5, $B4, $96, $A5, $A6, $96, $88, $88, $78, $78, $87, $87, //2035$95, $B4, $A5, $B4, $A5, $A6, $97, $87, $87, $78, $87, $96, //2036$A5, $C3, $A5, $B5, $A6, $A6, $87, $88, $88, $78, $87, $86, //2037$A5, $B4, $96, $A5, $A6, $96, $88, $88, $78, $78, $87, $87, //2039$95, $B4, $A5, $B4, $A5, $A6, $97, $87, $87, $78, $87, $96, //2040$A5, $C3, $A5, $B5, $A5, $A6, $87, $88, $87, $78, $87, $86, //2041$A5, $B3, $A5, $B5, $A6, $A6, $88, $88, $88, $78, $87, $87, //2042$A5, $B4, $96, $A5, $A6, $96, $88, $88, $78, $78, $87, $87, //2043$95, $B4, $A5, $B4, $A5, $A6, $97, $87, $87, $88, $87, $96, //2044$A5, $C3, $A5, $B4, $A5, $A6, $87, $88, $87, $78, $87, $86, //2045 字串7 $A5, $B3, $A5, $B5, $A6, $A6, $87, $88, $88, $78, $87, $87, //2046$A5, $B4, $96, $A5, $A6, $96, $88, $88, $78, $78, $87, $87, //2047$95, $B4, $A5, $B4, $A5, $A5, $97, $87, $87, $88, $86, $96, //2048$A4, $C3, $A5, $A5, $A5, $A6, $97, $87, $87, $78, $87, $86, //2049$A5, $C3, $A5, $B5, $A6, $A6, $87, $88, $78, $78, $87, $87); //2050function MonthDays(iYear,iMonth:Word):Word;begincase iMonth of1,3,5,7,8,10,12: Result:=31;4,6,9,11: Result:=30;2://如果是闰年if IsLeapYear(iYear) thenResult:=29elseResult:=28elseResult:=0;end;end;function GetLeapMonth(iLunarYear:Word):Word;varFlag:Byte;beginFlag:=gLunarMonth[(iLunarYear-START_YEAR) div 2];if (iLunarYear-START_YEAR) mod 2=0 thenResult:=Flag shr 4elseResult:=Flag and $0F;end;function LunarMonthDays(iLunarYear,iLunarMonth:Word):Longword;varHeight,Low:Word;iBit:Integer;beginif iLunarYear beginResult:=30;Exit;end;Height:=0;Low:=29;iBit:=16-iLunarMonth;if (iLunarMonth>GetLeapMonth(iLunarYear)) and (GetLeapMonth(iLunarYear)>0) then Dec(iBit);if (gLunarMonthDay[iLunarYear-START_YEAR] and (1 shl iBit))>0 thenInc(Low);if iLunarMonth=GetLeapMonth(iLunarYear) thenif (gLunarMonthDay[iLunarYear-START_YEAR] and (1 shl (iBit-1)))>0 then Height:=30elseHeight:=29;Result:=MakeLong(Low,Height);end;function LunarYearDays(iLunarYear:Word):Word;varDays,i:Word;tmp:Longword;beginDays:=0;for i:=1 to 12 dobegintmp:=LunarMonthDays(iLunarYear,i);Days:=Days HiWord(tmp);Days:=Days LoWord(tmp);end;Result:=Days;end;procedure FormatLunarYear(iYear:Word;var pBuffer:string);varszText1,szText2,szText3:string;beginszText1:=´甲乙丙丁戊己庚辛壬癸´;szText2:=´子丑寅卯辰巳午未申酉戌亥´;szText3:=´鼠牛虎免龙蛇马羊猴鸡狗猪´;pBuffer:=Copy(szText1,((iYear-4) mod 10)*2 1,2);pBuffer:=pBuffer Copy(szText2,((iYear-4) mod 12)*2 1,2);pBuffer:=pBuffer ´ ´;pBuffer:=pBuffer Copy(szText3,((iYear-4) mod 12)*2 1,2);pBuffer:=pBuffer ´年´;end;function FormatLunarYear(iYear:Word):string;varpBuffer:string;beginFormatLunarYear(iYear,pBuffer);Result:=pBuffer;end;procedure FormatMonth(iMonth:Word;var pBuffer:string;bLunar:Boolean); varszText:string;beginif (not bLunar) and (iMonth=1) thenbeginpBuffer:=´一月´;Exit;end;szText:=´正二三四五六七八九十´;if iMonth<=10 thenbeginpBuffer:=´ ´;pBuffer:=pBuffer Copy(szText,(iMonth-1)*2 1,2);pBuffer:=pBuffer ´月´;Exit;end;if iMonth=11 thenpBuffer:=´十一´字串2elsepBuffer:=´十二´;pBuffer:=pBuffer ´月´;function FormatMonth(iMonth:Word;bLunar:Boolean):string;varpBuffer:string;beginFormatMonth(iMonth,pBuffer,bLunar);Result:=pBuffer;end;procedure FormatLunarDay(iDay:Word;var pBuffer:string);varszText1,szText2:string;beginszText1:=´初十廿三´;szText2:=´一二三四五六七八九十´;if (iDay<>20) and (iDay<>30) thenbeginpBuffer:=Copy(szText1,((iDay-1) div 10)*2 1,2);pBuffer:=pBuffer Copy(szText2,((iDay-1) mod 10)*2 1,2);endelsebeginpBuffer:=Copy(szText1,(iDay div 10)*2 1,2);pBuffer:=pBuffer ´十´;end;end;function FormatLunarDay(iDay:Word):string;varpBuffer:string;beginFormatLunarDay(iDay,pBuffer);Result:=pBuffer;end;functionCalcDateDiff(iEndYear,iEndMonth,iEndDay:Word;iStartYear:Word;iStartMonth:Word;iStartDay: Word):Longword;beginResult:=Trunc(EncodeDate(iEndYear,iEndMonth,iEndDay)-EncodeDate(iStartYear,iStartMonth,i StartDay));end;function CalcDateDiff(EndDate,StartDate:TDateTime):Longword;beginResult:=Trunc(EndDate-StartDate);end;procedure l_CalcLunarDate(var iYear,iMonth,iDay:Word;iSpanDays:Longword); vartmp:Longword;begin//阳历1901年2月19日为阴历1901年正月初一//阳历1901年1月1日到2月19日共有49天if iSpanDays<49 thenbeginiYear:=START_YEAR-1;if iSpanDays<19 thenbeginiMonth:=11;iDay:=11 Word(iSpanDays);endelsebeginiMonth:=12;iDay:=Word(iSpanDays)-18;end;Exit;end;//下面从阴历1901年正月初一算起iSpanDays:=iSpanDays-49;iYear:=START_YEAR;iMonth:=1;iDay:=1;//计算年tmp:=LunarYearDays(iYear);字串7while iSpanDays>=tmp dobeginiSpanDays:=iSpanDays-tmp;Inc(iYear);tmp:=LunarYearDays(iYear);end;//计算月tmp:=LoWord(LunarMonthDays(iYear,iMonth));while iSpanDays>=tmp dobeginiSpanDays:=iSpanDays-tmp;if iMonth=GetLeapMonth(iYear) thenbegintmp:=HiWord(LunarMonthDays(iYear,iMonth));if iSpanDays iSpanDays:=iSpanDays-tmp;end;Inc(iMonth);tmp:=LoWord(LunarMonthDays(iYear,iMonth));end;//计算日iDay:=iDay Word(iSpanDays);end;function l_GetLunarHolDay(iYear,iMonth,iDay:Word):Word; varFlag:Byte;Day:Word;beginFlag:=gLunarHolDay[(iYear-START_YEAR)*12 iMonth-1]; if iDay<15 thenDay:=15-((Flag shr 4) and $0f)elseDay:=(Flag and $0f) 15;if iDay=Day thenif iDay>15 thenResult:=(iMonth-1)*2 2elseResult:=(iMonth-1)*2 1elseResult:= 0;end;字串3function GetLunarHolDay(InDate:TDateTime):string;vari,iYear,iMonth,iDay:Word;beginDecodeDate(InDate,iYear,iMonth,iDay);i:=l_GetLunarHolDay(iYear,iMonth,iDay);case i of1:Result:=´小寒´;2:Result:=´大寒´;3:Result:=´立春´;4:Result:=´雨水´;5:Result:=´惊蛰´;6:Result:=´春分´;7:Result:=´清明´;8:Result:=´谷雨´;9:Result:=´立夏´;10:Result:=´小满´;11:Result:=´芒种´;12:Result:=´夏至´;13:Result:=´小暑´;14:Result:=´大暑´;15:Result:=´立秋´;16:Result:=´处暑´;17:Result:=´白露´;18:Result:=´秋分´;19:Result:=´寒露´;20:Result:=´霜降´;21:Result:=´立冬´;22:Result:=´小雪´;字串223:Result:=´大雪´;24:Result:=´冬至´;elsel_CalcLunarDate(iYear,iMonth,iDay,CalcDateDiff(InDate,EncodeDate(START_YEAR,1,1))); Result := trim(FormatMonth(iMonth) FormatLunarDay(iDay));end;end;function GetLunarHolDay(iYear,iMonth,iDay:Word):string;beginResult:=GetLunarHolDay(EncodeDate(iYear,iMonth,iDay));end;end.。
2022农历
2022年农历:公历1月:对照表农历:壬寅年正月初一=西历/西历/公历:2022年2月1日=今天的官方日历:新年正月初一。
农历:壬寅年正月初二=西历/西历/公历:2022年2月2日=今天的官方日历:大年初八。
农历:壬寅年正月初三=西历/西历/公历:2022年2月3日=今天的干支历:新丑年初一,新丑月初二。
农历:壬寅年正月初四=西历/阳历/公历:2022年2月4日=今天的干支历:壬寅年戊子日。
农历:壬寅年正月初五=西历/西历/公历:2022年2月5日=今天的官方历法:壬寅年的丑日。
农历:壬寅年正月初六=西历/阳历/公历:2022年2月6日=今天的官方历法:壬寅年庚寅日。
农历:壬寅年正月初七=西历/阳历/公历:2022年2月7日=今天的官方历法:壬寅年辛卯之日。
农历:壬寅年正月初八=西历/阳历/公历:2022年2月8日=今日官方历法:壬寅日,壬寅月,壬辰日。
农历:壬寅年正月初九=西历/阳历/公历:2022年2月9日=今日官方历法:壬寅初三。
农历:壬寅年正月初十=西历/阳历/公历:2022年2月10日=今天的官方日历:壬寅年吴佳日。
农历:壬寅年正月十一=西历/阳历/公历:2022年2月11日=本支历:壬寅年初二。
农历:壬寅年正月十二日=西历/阳历/公历:2022年2月12日=官支现历:壬寅年生日。
农历:壬寅年正月十三=西历/西历/公历:2022年2月13日=现行官方历法:壬寅年初三。
农历:壬寅年正月十四=西历/西历/阳历:2022年2月14日=现干支历:壬寅十八日。
农历:壬寅年正月十五=西历/西历/公历:2022年2月15日=壬寅年之一天。
农历:壬寅年正月十六=西历/阳历/公历:2022年2月16日=现行官方历法:壬寅年庚子日。
农历:阴历正月十七=西历/西历/公历:2022年2月17日=今天的官方日历a 农历:壬寅年正月二十六=西历/西历/公历:2022年2月26日=现行官方日历:壬寅年耿旭日。
农历:壬寅年正月二十七=西历/西历/公历:2022年2月27日=现行官方历法:壬寅年辛亥之日。
过多少年能赶上一次公历和农历生日是同一天?
过多少年能赶上一次公历和农历生日是同一天?19年一重合。
中国的历法叫农历,属于阴阳历,阳历是按照地球公转一周计一年,这样分城12个月平均每个月大概是30或31天,而阴历是按照月球公转一周计一月,这样分成12个月平均每个月就大概是29天或者30天,这样每年就会有误差,所以我们采用了置闰的方法。
而置闰的模式是19年7闰月制。
1回归年为12.368个朔望月,0.368=368/1000=46/125,125个回归年正好多出46个朔望月,也就是说,125年里设置46个闰月是最精准的,但这样计算过于复杂也不利于辅助农耕(记得以前看果壳关于玛雅的文章,好像提到过他们设置“闰年”一两千年进1年好像……具体记不清了),因为7/19最接近0.368,所以我们现在的正确记法是19年7闰月制,不过每年都会有2小时左右的误差。
这样每个有闰月的年份383或384天。
我记得看过资料说,置闰的年份不是固定的吧,应该是从冬至开始到下一个冬至为止,如果里面有12个月就不置闰,如果多于12个月就置闰,闰月的月份是从冬至往后第一个没有中气的月份算起,计数计前一个月。
中气取自节气,节气分开是节历和中气,比如立春就是节历,雨水就是中气,如果冬至过后这个月只有立春没有雨水,那么就在这个月设闰。
另外楼上有说60年的,其实60年一轮回是中国的另一种历法,叫干支纪年法,根本不是农历。
甲、乙、丙、丁、戊、己、庚、辛、壬、癸被称为十天干,子、丑、寅、卯、辰、巳、午、未、申、酉、戌、亥叫作十二地支,天干地支相互搭配一个轮回正好是60年,叫一甲子,所以60岁也叫花甲之年。
这种历法也很常见,比如辛亥革命、戊戌变法都是以这种历法作为表示。
另外算命多用这种历法,生辰八字就是用的这个,比如现在出生的孩子八字就应该是“癸巳(年)、甲寅(月)、癸卯(日)、壬巳(时)”。
十二个地支表示一天当中的十二个时辰,而用这种历法的话,一天的开始是23点整(子时开始),而不是24点,所以23点之后出生的孩子农历生日就是第二天了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
年小一年,农历大小月取前一年的信息,农历月从12 月向前推算。 2.5、程序流程图: 阳历-农历子程序入口
读入标志字节之后?
Y
农历年=阳历年-1
农历年=阳历年
取上一年农历信息
取本年农历信息
逐月向前推算日期
逐月向后推算日期
标准化农历年月日
子程序出口
2.6、C51 程序源代码: 2.6.1、头文件<yltonl.h>定义: #define uchar unsigned char #define uint unsigned int //input: yy/mm/dd 阳历日期 uchar yangli_year; uchar yangli_month; uchar yangli_date; //output:yy/mm/dd 农历日期 uchar data nongli_year; uchar data nongli_month; uchar data nongli_date; //农历年信息标志字节
2、功能实现:
2.1、农历年信息表示: 2.1.1 农历大月 30 天,小月 29 天【用 1×12bit 表示大小月信息】 2.1.2 如有闰月一年 13 月,否则 12 月【用 4bit 表示闰月的月份,0 表示无闰月】 2.1.2 参照日:农历正月初一对应的阳历日期【日用 5bit 表示】 ; 【月用 2bit 表示】 农历一年信息共计 12+4+5+2=23bit 表示【可用 3 字节表示一农历年的信息】 2.2、农历年信息存放格式: 第一字节:bit7-bit4【闰月所在月份】bit3-bit0【农历 1-4 月的大小】 第二字节:bit7-bit0【农历 5-12 月的大小】1->30 天;0->29 天 第三字节:bit6-bit5【春节所在阳历月份】bit4-bit0【春节所在阳历日期】 2.3、下面统计(2001-2020)20年的农历年信息(共占用3×20=60字节) 0x4D,0x4A,0x0B8, //2001 0x0B,0x4A,0x43, //2011 0x0D,0x4A,0x4C, //2002 0x4B,0x55,0x37, //2012 0x0D,0x0A5,0x41, //2003 0x0A,0x0D5,0x4A, //2013 0x25,0x0AA,0x0B6, //2004 0x95,0x5A,0x0BF, //2014 0x05,0x6A,0x49, //2005 0x04,0x0BA,0x53, //2015 0x7A,0x0AD,0x0BD, //2006 0x0A,0x5B,0x48, //2016 0x02,0x5D,0x52, //2007 0x65,0x2B,0x0BC, //2017 0x09,0x2D,0x47, //2008 0x05,0x2B,0x50, //2018 0x5C,0x95,0x0BA, //2009 0x0A,0x93,0x45, //2019 0x0A,0x95,0x4E, //2010 0x47,0x4A,0x0B9 //2020 2.4、阳历-农历转换原理: 先计算出公历日离当年元旦的天数, 然后查表取得当年的春节日期, 计算出春节离元旦的天数, 二者相减即可算出公历日离春节的天数; 以后只要根据大小月和闰月信息减一月天数, 调整一 月农历月份,即可推算出公历日所对应的农历日期,如公历日不到春节日期,农历年要比公历
基于 C51 实现阳历-农历的转换
刘波 清华东路 27 号 1022 邮编 100083 摘 要:本文提出了一种基于 Keil-C 实现阳历-农历转换的单片机实现方案,设计原理采用 查表法,程序代码空间小,基于模块化设计,可广泛应用于嵌入式系统设计。 关键字:Keil-C,阳历-农历,嵌入式系统
1、概述:
阳历是全世界通用的历法,以地球绕太阳的一周为一年,一年365 天,分为12 月:1 3 5 7 8 10 12月为31天,2月为28天(闰年29天)其余月份为30天。历法规定:闰年是能被4整除的年份 中扣除仅能被100整除而不能被400整除的年份。 农历与公历不同,农历把月亮绕地球一周作为一月。因为月亮绕地球一周不是一整天,所 以农历把月份分为大月和小月:大月30天,小月29天。通过设置大小月使农历日始终与月亮与 地球的位置相对应, 为了使农历的年份与阳历年份相对应, 农历通过设置闰月的办法使它的平 均年长度与公历年相等。农历是中国传统文化的代表之一,并与农业生产联系密切,中国人民 特别是广大农民十分熟悉并喜爱农历。 阳历与农历是我国目前并存的两种历法,各有其固有的规律。农历与月球的运行相对应, 其影响因素多,它的大小月和闰月与天体运行有关,计算十分复杂,且每年都不一致。因此要 用单片机实现公历与农历的转换,查表法是最方便实用的方法,本文即介绍一种基于Keil-C 的阳历-农历转换查表实现方案。
uchar flag_byte1; uchar flag_byte2; uchar flag_byte3; //阳历日期距元旦的天数,春节日期距元旦的天数 uint yangli_num ; uint nongli_num ; //农历月每月天数 uchar month_num[13]; #define start_year 0x01 //start 2001 //可根据你的设计进行修改 //阳历年每月之前各月的总天数 nr-非闰年 r-闰年 code uint yl_num_nr[13]={0,0,31,59,90,120,151,181,212,243,273,304,334}; code uint yl_num_r[13]={0,0,31,60,91,121,152,182,213,244,274,305,335}; //2001-2020 年的农历信息 code uchar flag_data[20][3]={ //20 年农历年信息 0x4d,0x4A,0x0B8, //2001 0x0d,0x4A,0x4C, //2002 0x0d,0x0A5,0x41, //2003 0x25,0x0AA,0x0B6, //2004 0x05,0x6A,0x49, //2005 0x7A,0x0Ad,0x0Bd, //2006 0x02,0x5d,0x52, //2007 0x09,0x2d,0x47, //2008 0x5C,0x95,0x0BA, //2009 0x0A,0x95,0x4e, //2010 0x0B,0x4A,0x43, //2011 0x4B,0x55,0x37, //2012 0x0A,0xd5,0x4A, //2013 0x95,0x5A,0x0Bf, //2014 0x04,0x0BA,0x53, //2015 0x0A,0x5B,0x48, //2016 0x65,0x2B,0x0BC, //2017 0x05,0x2B,0x50, //2018 0x0A,0x93,0x45, //2019 0x47,0x4A,0x0B9 //2020 }; 2.6.2 源程序<yltonl.c>: #include <reg51.h> #include <intrins.h> #include <yltonl.h> //***************************************************************** //name: read_data() //function: read flag_data[][] and store in flag_byte[] //return: no void read_data(void){ uchar temp_data1;
else {month_num[12-i]=29; temp_data3=temp_data3>>1;} } month_num[temp_data4]+=month_num[temp_data4]; } //****************************************************************** //name: get_nongli() //function: based on above data,get nongli_year、nongli_month、nongli_date void get_nongli(void){ uchar bdata temp_data3; // bdata 型,可位寻址, 存放农历闰月月份 uchar i; if (yangli_num>=nongli_num){ //公历日在当年春节之后 nongli_year=yangli_year; //农历年=阳历年 yangli_num-=nongli_num; yangli_num+=1; //农历日距春节的天数 while(yangli_num>month_num[i]) { yangli_num-=month_num[i]; i++;} //已求出月份和日期 nongli_month=i; if(yangli_num>30) {yangli_num-=month_num[i]<<1;} //是闰月调整 nongli_date=yangli_num; } //阳历日在当年春节之前 else { nongli_year=yangli_year-1; nongli_num-=yangli_num; //距春节的天数,在春节之前 //取上一年信息 //此时一般是 10,11,12 月 temp_data3=flag_data[yangli_year-start_year-1][1]; //更新农历月份标志 for (i=0;i<=2;i++){ //只计算 10-12 月且不用考虑闰月 if (temp_data3 & 0x01){ month_num[12-i]=30; temp_data3=temp_data3>>1;} else {month_num[12-i]=29; temp_data3=temp_data3>>1;} } for(i=12;nongli_num>month_num[i];i--) nongli_num-=month_num[i]; //得到月份和日期 nongli_month=i; nongli_date=month_num[i]-nongli_num+1; } } //****************************************************************** //name: void yl_to_nl(void) //function: yangli to nongli //input: no //农历闰月天数调整