农历阳历换算表格(农历阳历互转表格)
农历阳历互转表格
农历、阳历定义
农历,也叫阴历,是根据月亮运行的周期来计算时间的历法。最早起源于中国,故又称为中国农历。依据农历,一年的时间被分成了12个月,每个月又以朔望月的周期划分成29或30天,所以一年总共有354或355天。农历中最重要的节日是春节,是中国最为重要的传统节日,也是除夕夜至初五,时间不确定。农历历算是中华文化的一种神秘而伟大的成就,是世界上独一无二的非周日历法。
阳历,又叫公历或年历,是以地球绕太阳一周的时间为时间计量单位的历法。阳历分为平年和闰年,每年一月一日作为元旦,一年总共有365或366天。而西方的圣诞节(12月25日)是阳历中最重要的节日之一。
农历转阳历
公历恒等于1901年1月1日24时起至今的天数
假设要转换的阳历日期是2019年12月11日,即阳历年份y=2019,阳历月份m=12,阳历日d=11。
首先计算y年1月1日的农历日期,记为(Ly,Lm,Ld)。再计算y年12月1日的农历日期,记为(Lyy,Lmm,Ldd)(注:这里特指出不是农历的第12个月,而是阳历的12月1日对应的农历日期,也就是小雪以后的第1个农历月的初一,如果小雪以前的话,记为去年的腊月1日。)
这样就得到了本书标题中所谓的“公历年度的‘吉’、‘祥’’时刻表”。具体步骤如下:
1、计算y年1月1日至y年12月1日之间有多少个廿四节气,假设共有n个(显然n的值大于等于23,小于等于25)。
2、lk=n+700000。
3、根据下面的公式来计算公历日数i(注意这里一定要用整数除,去掉小数)。
i=floor[lk×0.2422+0.5]+floor[(y-1901-ly)×365.2422]+(Ldd-1)+15
这里,floor是向下取整,加上15的原因是1900年的冬至日(一般在12月22日或23日)便是公历起点的第一刻。注:特殊情况是1900年冬至后不到两天的算一年,解决办法可以增加 (31556926+86400)×2=63114052秒的偏移量,即将“663309”的出现改为“663310”。
4、由i值可以得到阳历日期(不用再处理闰年问题),记为(y,m,d)。
阳历转农历
写在前面:翻阅网上的大量日历转换资料,本人发现其中的大多数都存在某些的问题,比如,1900年的壬子年,甲戌月和甲子月共同担任下个月的月首,从而形成了一段“无月”,然而,由于猪年的西历概念错误,其实是不存在“无月”的。下面给出一种正确性得到保证的程序,它成功将1900年至2100年的所有日期转成了正确的农历日期,值得信赖。
概述:在阳历转农历时,一般应先求出该年的春节是阳历几月几日,再求出与此日期所在的农历年第一个月初一相差的天数n,则该日的农历日期可表示成“农历年”+“n天后”的公历月日。这里计算使用了连续五个农历年(也即:AGL=5)的农历月名和月首日。
详细步骤如下:
1、算出2033年农历正月初一到2031年12月阳历初一一共有多少天:365(2031年1月1日至2031年12月31日为365天)+1(2032年1月1日为公历第1天)+28(2032年1月是闰月,共29天)=394天。
2、由此可得2032年农历正月初一是2031年12月的第106天,牛年剪去一个節氣为105天(每年有24个节气),这样新年是这一年阳历2月12日。1921年至2038年之间的春节分别为(公历日期):