公历转换农历算法

作者&投稿:杭定 (若有异议请与网页底部的电邮联系)
~ 农历转换成公历的计算公式? 因为公历(现在用的是格里历,以前还曾用儒列历)和中国农历都不是严格按一个公式计算得到的,所以两个历法没有直接的公式。
试图用一个简单的公式,而不利用许多像万年历一样的数据(尽管可以简化),就达到公农历转换的目的,这是不可能的。我们能见到的所有公农历转换的软件,都存有多少不等的一些年份的历法数据。
这些数据之中,最重要的是农历的每月天数。因为农历是阴阳历,阴历部分(按月相编的部分)决定月日,阳历部分(按太阳高度编的部分)就是节气。节气基本上是与公历直接对应的,可以较容易的推算;但月相周期与地球公转的关系相对复杂,一般都需要天文观测数据授时,所以农历每月是大月还是小月没有简单的公式。
至于公历和农历的置闰,倒都有一定的方式推算,并不困难。
如果只是天文数据,其实都还是可以算的――因为天文周期十分稳定,我们只要严格地按天文周期推算就可以了。可是还有更为麻烦的一点,就是公历和农历这些历法,并不是完全严格地按照天文上的实际周期进行的,还有许多人为的因素。最著名的就是罗马皇帝几次修改2、8等月份长短,以及儒列历中因计算不准确而人为地去掉了十天等事。中国农历也有因为古代天文观测不准确造成的 *** 颁布的历法与天象不吻合的(我们不能苛求古人观测的精度)。所以这两部历法都是与一个时期社会有关的东西,也就没有一定的规律可循了。

农历转换公历对照表 是公历1945年4月29日 星期日

农历和公历是怎么转换的?(怎么算的?) 你是要口算还是要用笔算?
告诉你,这样子算不靠谱的,根本算不出来,涉及到的转换不是简单的几个公式能得出,相反,它的转换相当复杂。
如果有兴趣编写程序的,我可以提供转换函数库,调用一个函数就可以实现农历与公历的互转了。
目前我已经完美地实现了转换,如果需要,我可以提供。

日期转换为农历日期的算法是什么 excel公历转农历方法一:使用text函数 A列是公历日期,我们在B1单元格输入公式:=TEXT(A1,[$-130000]yyyy年m月&IF(LEN(--TEXT(A1,[$-130000]dd))=1,初,)&d),下拉完成公历转农历。

excel如何农历转换阳历公式 比如今天是2010年9月2日,用以下公式就可以得出农历七月二十四:
虽然在遇到闰月时,显示结果有点差强人意,如下图中,2010年2月9日的农历应是十二月二十六,但因为那年有个闰五月,就无辜多出来一个月了。不过总比编代码要快捷多了吧,而且闰月也不是天天有。
假如把公式改成:=MID(甲乙丙丁戊己庚辛壬癸,MOD(TEXT(A2,[$-130000]e)-4,10)+1,1)&MID(子丑寅卯辰巳午未申酉戌亥,MOD(TEXT(A2,[$-130000]e)-4,12)+1,1)&年&TEXT(A2,[$-130000][DBNum1]m月)&TEXT(A2,IF(--TEXT(A2,[$-130000]d)=10,初十,IF(--TEXT(A2,[$-130000]d)>10,[$-130000][DBNum1]d,初[$-130000][DBNum1]d))),那就更像农历表示法了,不过因为农历每年开始日期都不一样,所以函数很难达到十分精确的结果,只能是将就着用。

实现阳历转阴历算法 下面是一个关于VB的农历算法
'日期数据定义方法如下
'前12个字节代表1-12月为大月或是小月,1为大月30天,0为小月29天;
'第13位为闰月的情况,1为大月30天,0为小月29天;
'第14位为闰月的月份,如果不是闰月为0,否则给出月份,10、11、12分别用A、B、C来表示,即使用16进制;
'最后4位为当年家农历新年-即农历1月1日所在公历的日期,如0131代表1月31日。
Function GetChgDate(ByVal vDate As String, ByVal ChgType As 转换方式) As String
Dim vvdate() As String = Split(vDate, -)
If vvdate(0) > 2011 Or vvdate(0) >

农历与阳历如何计算 阴历阳历转换计算公式
1、阳历日期推算阴历日期的方法:
前已述及阴历日期是以月亮的圆缺为计月单位,其以逢朔为初一,以月望为十五(大月为十六日),以月晦为二十九日(大月为三十日)。
如要知道1984年6月8日是阴历几日?可以利用公式推算阴历日期: 设:公元年数-1977(或1901)=4Q+R
则:阴历日期=14Q+10.6(R+1)+年内日期序数-29.5n (注:式中Q、R、n均为自然数,R>

在EXCEL中怎样把公历转换成农历 Dim WeekName(7), MonthAdd(11), NongliData(99), TianGan(9), DiZhi(11), ShuXiang(11), DayName(30), MonName(12)
Dim curTime, curYear, curMonth, curDay, curWeekday
Dim GongliStr, WeekdayStr, NongliStr, NongliDayStr
Dim i, m, n, k, isEnd, bit, TheDate
Private Sub Form_Load()
'获取当前系统时间
curTime = Now()
'星期名
WeekName(0) = *
WeekName(1) = 星期日
WeekName(2) = 星期一
WeekName(3) = 星期二
WeekName(4) = 星期三
WeekName(5) = 星期四
WeekName(6) = 星期五
WeekName(7) = 星期六
'天干名称
TianGan(0) = 甲
TianGan(1) = 乙
TianGan(2) = 丙
TianGan(3) = 丁
TianGan(4) = 戊
TianGan(5) = 己
TianGan(6) = 庚
TianGan(7) = 辛
TianGan(8) = 壬
TianGan(9) = 癸
'地支名称
DiZhi(0) = 子
DiZhi(1) = 丑
DiZhi(2) = 寅
DiZhi(3) = 卯
DiZhi(4) = 辰
DiZhi(5) = 巳
DiZhi(6) = 午
DiZhi(7) = 未
DiZhi(8) = 申
DiZhi(9) = 酉
DiZhi(10) = 戌
DiZhi(11) = 亥
'属相名称
ShuXiang(0) = 鼠
ShuXiang(1) = 牛
ShuXiang(2) = 虎
ShuXiang(3) = 兔
ShuXiang(4) = 龙
ShuXiang(5) = 蛇
ShuXiang(6) = 马
ShuXiang(7) = 羊
ShuXiang(8) = 猴
ShuXiang(9) = 鸡
ShuXiang(10) = &q......>>

如何把农历转成阳历,求算法 int lunarInfo[]={/*阴历数据*/
0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,
0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977,
0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970,
0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950,
0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557,
0x06ca0,0x0b550,0x15355,0x04da0,0x0a5d0,0x14573,0x052d0,0x0a9a8,0x0e950,0x06aa0,
0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0,
0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b5a0,0x195a6,
0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570,
0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0,
0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5,
0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930,
0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530,
0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45,
0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0};
int solarMonth[]={31,28,31,30,31,30,31,31,30,31,30,31};
---------------------------------------------------------------------------
int lYearDays(int y) {
int i, sum = 348;
for(i=0x8000; i>0x8; i>>=1) sum += (lunarInfo[y-190......>>


农历和阴历应该怎么换算?
查看万年历,这是最简单的方法。阴历和阳历生日怎么换算的计算方法如下:用公式推算阴历日期:设:公元年数-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 故:...

怎么将阳历转化为阴历
公历和农历的转换 很多人都一直在找换阴阳历的公式。不过由于月球转动的不稳定不规则,因此无公式可寻,也就是说公历和农历的转换没有计算方式,这也是古代中国每百年必改历的原因。公历和农历生日多久重合一次 一般每隔十九年阳历阴历同一天 。不管是阴历的月还是阳历的年,它们的准确天数都不是整数而是...

新历生日怎么换算农历生日?
新历生日是不能直接换算农历生日的。阴历是中国传统历法之一,也被称为旧历、汉历、古历等,辛亥革命后改用西方太阳历(公历),而近现代使用的农历属于阴阳合历,也就是阴历和阳历的合历。农历是中国现行的传统历法,属于阴阳结合历法,即阴历和公历的结合历法。根据月相的变化周期,每个月相朔望变化为一个...

农历与阳历换算
农历转换成公历的计算公式? 因为公历(现在用的是格里历,以前还曾用儒列历)和中国农历都不是严格按一个公式计算得到的,所以两个历法没有直接的公式。 试图用一个简单的公式,而不利用许多像万年历一样的数据(尽管可以简化),就达到公农历转换的目的,这是不可能的。我们能见到的所有公农历转换的软件,都存有多少不...

农历日期怎么算
农历,一年一般为12个月,一个月天数依照月亮围绕地球运行周期而定,为29或30天,闰年为13月,中国农历年平年为353或354天,闰年为384或385天,平均每年约为365.2422天(即地球环绕太阳一周的时间)。 农历可按如下方式推断:当月亮运行到地球与太阳之间成一直线的那天,为每个月的开始,称为(朔日)...

请问农历阴历怎么算?
阴历的计算方式是以月亮的运动为基准,一个月的长度是根据月亮绕地球旋转的周期来确定的,平均为29.5天。而阳历(也称公历)则是根据地球绕太阳的周期来制定的,一年有365天又5小时48分46秒。因此,阴历和阳历的计算方式是不同的,阴历和阳历之间并没有直接的关系。

阳历农历转换简便方法
它们之间不存在简单的转换方法 国际通用的历法是以一年太阳回归年为周期,谓之太阳历,故称为阳历,全球公用,故亦称为公历。是由西方国家传入我国的纪元方式,台湾人亦称为西历、西元。中国传统的历法自夏朝始,称为夏历,是以月球绕地球一周为一个月,十二个月为一年,谓之太阴历,故称为阴历。中国...

农历和阳历怎么转换
公历是阳历的一种,阳历就是以地球绕太阳公转的运动周期为基础而制定的历法。中国农历中每月的天数是根据月亮运动周期确立的,平均每月29.5306日。一年12个月只有354.3672天。而以地球围绕太阳公转时间确定的公(阳)历,一年有365.2422天。这样,按农历计算,一年的天数比公历就少了10.875天,差不多是11天...

阳历和农历的转换
1. 阳历和农历的转换涉及不同的历法系统,因此并非直接或固定。2. 阳历,或公历、格里高利历,以地球绕太阳公转为基础,每年约365.2425天。3. 阳历分为12个月,天数从28到31天不等,月份与季节相对应。4. 农历,或阴历、农历,以月球绕地球公转为基础,每年约354.37天。5. 农历分为12个月,...

旧历新历换算
2. 使用专业的农历转换工具。现在有许多在线工具和手机应用程序可以帮助我们进行农历和公历之间的转换。这些工具通常基于复杂的算法,能够准确地处理闰月和其他历法上的特殊情况。举个例子,如果我们想知道2023年农历七月初七对应的公历日期是什么,我们可以查找2023年的农历和公历对照表,或者使用在线的农历转换...

西乡县13936316212: 公历和农历之间怎么换算? -
弭友乐尔: 很遗憾.因为公历(现在用的是格里历,以前还曾用儒列历)和中国农历都不是严格按一个公式计算得到的,所以两个历法没有直接的公式. 试图用一个简单的公式,而不利用许多像万年历一样的数据(尽管可以简化),就达到公农历转换的目...

西乡县13936316212: 农历与阳历如何计算 -
弭友乐尔: 阴历阳历转换计算公式 1、阳历日期推算阴历日期的方法: 前已述及阴历日期是以月亮的圆缺为计月单位,其以逢朔为初一,以月望为十五(大月为十六日),以月晦为二十九日(大月为三十日). 如要知道1984年6月8日是阴历几日?可以利...

西乡县13936316212: 日期转换为农历日期的算法是什么 -
弭友乐尔: excel公历转农历方法一:使用text函数 A列是公历日期,我们在B1单元格输入公式:=TEXT(A1,"[$-130000]yyyy年m月"&IF(LEN(--TEXT(A1,"[$-130000]dd"))=1,"初","")&"d"),下拉完成公历转农历.

西乡县13936316212: 公历和农历是如何换算的? -
弭友乐尔: 每月初一叫做朔,最后一日叫做晦.农历十五或十六或十七叫做望,望的后一天叫做既望 所以每年春节的大年三十并不在同一天.农历的基础是「回归年」和「朔望月」.「回归年」是太阳接连两次通过春分点所需的时间,即365.2422日(365...

西乡县13936316212: 新历怎么换算成农历 -
弭友乐尔: 首先阴历以月为基本单位,一个月以新月出现的那一天为始直至下一个新月出现的前一天. 由于月亮公转的周期介于29到30天之间,</WBR>阴历的一个月也就由新月出现时刻的早晚或是29天或是30天. 大月为30天,小月为29天. 与阳历不同...

西乡县13936316212: 公历年份如何转为农历年份 -
弭友乐尔: 这个我是通过如下步骤实现的:1 记住公元3年是癸亥年 所以60N+3的年份为癸亥年 比如183 ,363,...19832 把公历年份减去一个相近的癸亥年 以1900年为例:1900-1803=97 ;大于60的再减去60 ,97-60=37 3 那么37在60甲子循环中的干支序数...

西乡县13936316212: 阴历和阳历怎么换算 -
弭友乐尔: 阴历阳历转换:阴历阳历转换比较复杂,一般阴历日期大概落后阳历日期一个月,如果要转换可以借助万年历来查询.而且国际通用的历法是以一个太阳回归年为周期,谓之太阳历,简称为阳历,全球公用,故亦称为公历,阳历即是公历.另外,中国传统的历法自夏朝始,称为夏历,是以月球绕地球一周为一月,十二月为一年,月亮号为太阴,故谓之太阴历,简称为阴历.由于阴历的一年只有354天,少于太阳回归年的365天,所以夏历采用置闰月的方法,使得阴历的年份与阳历的年份大概保持一致.所以夏历将太阴历配合了闰年及二十四节气,使得太阴历的年周期同步于太阳历.中国夏历其实是阴阳合历.

西乡县13936316212: 公历农历之间有什么关系,如何换算 -
弭友乐尔: 公历,它是国际通用的.阳历 以地球绕太阳转一圈的时间定做一年,共3 65天5小时48分46秒.平年只计365天这个 整数,不计尾数;一年分做12个月,大月31 天,小月30天,二月只有28天.四年的尾 数积累起来共1天光景,加在第...

西乡县13936316212: 公历日期和农历日期是怎样转换的? -
弭友乐尔: 问的好!首先公历和农历是分别独立的两种历法,二者没有必然联系!地球寒暑季节变化周期为一个回归年(365日5时48分45.5秒),是制定历法“年”的依据,即历法都要力求平均年长等于回归年.公历(又称阳历、西历、新历)是西方人制定的历法,

西乡县13936316212: 阳历和农历的互相换算有什么规则,阳历和阴历的大小月 的对应规则是怎么对应的? -
弭友乐尔: 阳历以地球绕太阳一周作为参考(称为公转),而地球还会在公转的同时自转,才有了黑夜与白天,大约自转365圈相当于绕太阳公转一圈(也就是地球自转365天,称为一年).由于地球自转24小时和公转365天并不严格的一致,因此经过大...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网