热搜词: 

怎么把阳历转农历,公历转换农历四种算法

发布:小编

本文目录

公历转换农历四种算法

农历转换成公历的计算公式? 因为公历(现在用的是格里历,以前还曾用儒列历)和中国农历都不是严格按一个公式计算得到的,所以两个历法没有直接的公式。

试图用一个简单的公式,而不利用许多像万年历一样的数据(尽管可以简化),就达到公农历转换的目的,这是不可能的。我们能见到的所有公农历转换的软件,都存有多少不等的一些年份的历法数据。

这些数据之中,最重要的是农历的每月天数。因为农历是阴阳历,阴历部分(按月相编的部分)决定月日,阳历部分(按太阳高度编的部分)就是节气。节气基本上是与公历直接对应的,可以较容易的推算;但月相周期与地球公转的关系相对复杂,一般都需要天文观测数据授时,所以农历每月是大月还是小月没有简单的公式。

至于公历和农历的置闰,倒都有一定的方式推算,并不困难。

如果只是天文数据,其实都还是可以算的――因为天文周期十分稳定,我们只要严格地按天文周期推算就可以了。可是还有更为麻烦的一点,就是公历和农历这些历法,并不是完全严格地按照天文上的实际周期进行的,还有许多人为的因素。最著名的就是罗马皇帝几次修改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......>>

如何根据公历快速算出农历年份

根据公历快速算出农历可以通过Excel表格。具体如下:

电脑:华为笔记本。

系统:Windows10专业版2004。

工具:excel2019。

第一步,准备好一份用Excel做好的公历日期表格。

怎么把阳历转农历,公历转换农历四种算法图1

第二步,输入函数=text。

怎么把阳历转农历,公历转换农历四种算法图2

第三步,A2表示公历日期。

怎么把阳历转农历,公历转换农历四种算法图3

第四步,后面这串英文表示输入日期的格式=yyyy-m-d。

怎么把阳历转农历,公历转换农历四种算法图4

第五步,中间这个公式也是一种格式=[$-130000]。

怎么把阳历转农历,公历转换农历四种算法图5

第六步,完整的公式=TEXT(A2,"[$-130000]yyyy-m-d"),回车一个公历就出来了,剩下的下拉填充即可。

怎么把阳历转农历,公历转换农历四种算法图6

第七步,根据公历快速算出农历的结果就出来了。

怎么把阳历转农历,公历转换农历四种算法图7

excel怎么将公历日期转为农历日期格式

估计有的用户还不了解Excel公历日期转为农历的操作,下文小编就分享Excel公历日期转为农历的方法步骤,来下文看一看吧,希望对你们有所帮助哦。

以下面这个表格为例子,左边是公历,右边是农历。在农历的单元格中填入一下函数公式。=TEXT(A2,[-130000]yyyy-m-d)

当中A2表示要转换的公历单元格,yyyy-m-d表示转换日期的格式,而[-130000]就是农历转换的关键。最后回车然后填充即可。

若你认为这个农历的格式不好看,没有中国传统显示的特色,那公式可以改一改:=TEXT(A2,[-130000]yyyy年m月IF(LEN(--TEXT(A2,[-130000]dd))=1,初,)d)。然后同样回车填充即可。这样就能有几月初几的显示了。

阳历和阴历怎么换算对应

阳历和阴历之间是不能换算的,二者采用的计算方法不同,没有特殊关系可以查询,只能分别计算。

太阳历,又称为阳历,是以地球绕太阳公转的运动周期为基础而制定的历法。太阳历的历年近似等于回归年,一年12个月,这个“月”,实际上与朔望月无关。

阳历的月份、日期都与太阳在黄道上的位置较好地符合,根据阳历的日期,在一年中可以明显看出四季寒暖变化的情况;但在每个月份中,看不出月亮的朔、望、两弦。

阴历,中国传统历法之一,也被称为旧历、汉历、古历等,辛亥革命后改用西方太阳历(公历),而近现代使用的农历属于阴阳合历,也就是阴历和阳历的合历。

怎么把阳历转农历,公历转换农历四种算法图8

阴历,其计算方法是:

以太阴圆缺一周为一月,历时29日12小时44分2.8秒,太阴圆缺十二周为一年,历时354日8小时48分33.6秒。每一年的12个月中,6个单数月份(即1、3、5、7、9、11月)为“大建”,每月为30天。

6个双数月份(2、4、6、8、10、12月)为“小建”,每月为29天;在逢闰之年,将12月改大月为30天。该历以30年为一周期,每一周期里的第2、5、7、10、13、16、18、21、24、26、29年,共11年为闰年, 不设置闰月,而在12月末置一闰日,闰年为355日,另19年为平年,每年354日。

故平均每年为354日8小时48分。按该历全年实际天数计算,比回归年约少10日21小时1分,积2.7回归年相差一月,积32.6回归年相差一年。该历对昼夜的计算,以日落为一天之始,到次日日落为一日,通常称为夜行前,即黑夜在前,白昼在后,构成一天。

以上就是关于怎么把阳历转农历,公历转换农历四种算法的全部内容,以及阳历转农历的相关内容,希望能够帮到您。

大家都在看

查看更多好名分享