公历转换成农历的c
公历和农历之间如何转换 公历,它是国际通用的。阳历 以地球绕太阳转一圈的时间定做一年,共3 65天5小时48分46秒。平年只计365天这个 整数,不计尾数;一年分做12个月,大月31 天,小月30天,二月只有28天。四年的尾 数积累起来共1天光景,加在第四年的二月 里,这一年叫做闰年。所以闰年的二月有2 9天。阴历以月亮圆缺一次的时间定做一个 月,共29天半。为了算起来方便,大月定 做30天,小月29天,一年12个月中,大小 月大体上交替排列。阴历一年只有354天左 右,也没有平年闰年的差别。 阴历不考虑地球绕太阳的运行,因此使得 四季的变化在阴历上就没有固定的时间, 它不能反映季节,这是一个很大的缺点。 为了克服这个缺点,后来人们定了一个折 衷的历,就是所谓阴阳合历。现在我国还 在使用的夏历(也有人叫它农历或阴历),就 是这种阴阳合历。它跟阴历一样,也以月 亮圆缺一次的时间定做一个月,也是大月3 0天,小月29天,可是它又用加闰月的办法 ,使得平均每年的天数跟阳历全年的天数 相接近,来调整四季。夏历约每过二、三 年多一个闰月。“阴历”又名“太阴历”,系以 月球绕行地球一周为一月,再配合地球绕 日一周之时数为一年,实际上等于阴阳合 历,我国在民国元年前采用此历,为与现 行之历相对称,故名之曰“旧历”。一般人以 为阴历适合于农家,而名之日“农历”。
wps公历转农历如何操作 启用菜单:格式工具栏中“公历转农历”
设置一下就可以的
如何将农历转换为公历 是公历11月13日。这日历上有,要问怎么换的,当然公历是固定的,1、3、5、7、8、10、12月都是31天,2月28天(每4年润一次月,像2008年够4整除,润2月29天),其余的都是30天。
对于农历,它实质是阴历,沿用的是太阴历,这是一门很复杂的天文学知识。它包括24节气。
记住阳历是:1、3、5、7、8、10、腊,31天都不差,其余都是30天,除了2月28.
若是闰月2月29天,只多一天。
在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......
农历和公历是怎么转换的?(怎么算的?) 你是要口算还是要用笔算?
告诉你,这样子算不靠谱的,根本算不出来,涉及到的转换不是简单的几个公式能得出,相反,它的转换相当复杂。
如果有兴趣编写程序的,我可以提供转换函数库,调用一个函数就可以实现农历与公历的互转了。
目前我已经完美地实现了转换,如果需要,我可以提供。
农历转换公历对照表 是公历1945年4月29日 星期日
农历转换成公历的计算公式? 因为公历(现在用的是格里历,以前还曾用儒列历)和中国农历都不是严格按一个公式计算得到的,所以两个历法没有直接的公式。
试图用一个简单的公式,而不利用许多像万年历一样的数据(尽管可以简化),就达到公农历转换的目的,这是不可能的。我们能见到的所有公农历转换的软件,都存有多少不等的一些年份的历法数据。
这些数据之中,最重要的是农历的每月天数。因为农历是阴阳历,阴历部分(按月相编的部分)决定月日,阳历部分(按太阳高度编的部分)就是节气。节气基本上是与公历直接对应的,可以较容易的推算;但月相周期与地球公转的关系相对复杂,一般都需要天文观测数据授时,所以农历每月是大月还是小月没有简单的公式。
至于公历和农历的置闰,倒都有一定的方式推算,并不困难。
如果只是天文数据,其实都还是可以算的――因为天文周期十分稳定,我们只要严格地按天文周期推算就可以了。可是还有更为麻烦的一点,就是公历和农历这些历法,并不是完全严格地按照天文上的实际周期进行的,还有许多人为的因素。最著名的就是罗马皇帝几次修改2、8等月份长短,以及儒列历中因计算不准确而人为地去掉了十天等事。中国农历也有因为古代天文观测不准确造成的 *** 颁布的历法与天象不吻合的(我们不能苛求古人观测的精度)。所以这两部历法都是与一个时期社会有关的东西,也就没有一定的规律可循了。
公历农历转换 回历、公历、农历的换算
(128 × 365+31)日÷ 128年= 365.2421875日/年
可见共置闰精度远高于现代的公历。
2.换算中一日误差之订正
《历法丛谈》以回历1387年为例,求算合公历之年月日。
解1:1387 × 0.970224+621.5774=1967.278088年
0.278088年 × 365.2422日=101.569日公历累计日数为101.57日可视为4月11日或4月12日。究竟是哪一日,当依两历在公历4月11日或12日间所具有同一的星期序数以订正。
依回历岁首星期序数计算公式:
[(138-1)×131+164] ÷30=6057,余20
6057÷7=865,余 2
故回历1387年元旦为星期2。(表)
按公历自1583年元旦(星期六)至1967年4月11日,共历:
1967-1583=384年,在这384年中依格列高利历四年一闰,百年不闰,四百年加一闰日的规则共历93个闰日,又1967年元旦后一日起至4月11日又需加 100日,则
(384 × 365+93+100+6)÷ 7=140359+7=2001,余 2余2即星期2,故回历1387年元旦在公历1967年4月11日。
因公历计算星期日数采用数据较多,计算时难免有所遗漏,现引人公历日期与星期推算表阿),供参考。
应用此表查找公元1967年4月11日星期序数步骤如下:
先在本表年份表前二位数字栏目中,查到19二字所在的位置;
再在年份表后二位数字栏目中查到67二字所在位置,自19二字处平行右移,67二字处垂直下移,二者在英文大写字母栏目中相交于字母G处;
再自月份表栏目中查到4月,自4月所在位置平行左移,查到G在4月栏目所在位置;
自日期栏目查到11日所在位置,自此位置平行右移,使与4月份栏目G在星期表相交处知为星期二,结果与回历计算所得相同。故知回历 1387年元旦确为公历1967年4月11日,而不是12日。
在换算中所得公历日数常多于31日,甚至常在200―300日或更多,需要将此数化为该年的月日时,可用下列两表。
表3 公历月份及其累计日数
三 公历换算为回历
将回历换算为公历的算式移项,整理,即可得到公历换算为国历的算式
(公历纪年一621.5691)÷0.9702=回历年月日(儒略历)……………………………………………(5)
(公历纪年一621.5774)÷0.970224=回历年月日(格氏历)…………………………………………(6)
无论回历换算为公历或相反,大体都有一日之差,以星期序数订正时,回历换算为公历,以回历的星期序数为准;相反,以公历的星期序数为准。
四 国历或公历换算为中国农历
1.回历换算为农历
仅管中国农历各年在年内月数日数都不是一个相对的稳定值,给回历与公历换算为农历上带来较多的困难,但仍然可以换算。中国农历为阴阳合历,在月份上与回历同属太阴历,惟回历每月以见新月为一月之始,其日约迟于农历合朔(初一日)1―2日乃至3日,因此只要查清二者在月份上关系,便可将回历换算为中国农历。马以愚先生称:“......
阳历19740820转换阴历是多少 (公历): 1974年 8月 20日
(农历): 甲寅年 七月 初三
Excel 中阳历日期如何转换成阴历日期? 2007版的excel可用下面公式转换:
=TEXT(A1,[$-130000]yyyy年m月IF(LEN(--TEXT(A1,[$-130000]dd))=1,初,)d)
【公历转换农历算法】农历转换成公历的计算公式? 因为公历(现在用的是格里历,以前还曾用儒列历)和中国农历都不是严格按一个公式计算得到的,所以两个历法没有直接的公式。
试图用一个简单的公式,而不利用许多像万年历一样的数据(尽管可以简化),就达到公农历转换的目的,这是不可能的。我们能见到的所有公农历转换的软件,都存有多少不等的一些年份的历法数据。
这些数据之中,最重要的是农历的每月天数。因为农历是阴阳历,阴历部分(按月相编的部分)决定月日,阳历部分(按太阳高度编的部分)就是节气。节气基本上是与公历直接对应的,可以较容易的推算;但月相周期与地球公转的关系相对复杂,一般都需要天文观测数据授时,所以农历每月是大月还是小月没有简单的公式。
至于公历和农历的置闰,倒都有一定的方式推算,并不困难。
如果只是天文数据,其实都还是可以算的――因为天文周期十分稳定,我们只要严格地按天文周期推算就可以了。可是还有更为麻烦的一点,就是公历和农历这些历法,并不是完全严格地按照天文上的实际周期进行的,还有许多人为的因素。最著名的就是罗马皇帝几次修改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; i0x8; i=1) sum += (lunarInfo[y-190......
公历转换成农历的c相关文章: