农历转阳历怎么转Word下载.docx

上传人:b****3 文档编号:18436485 上传时间:2022-12-16 格式:DOCX 页数:11 大小:46.61KB
下载 相关 举报
农历转阳历怎么转Word下载.docx_第1页
第1页 / 共11页
农历转阳历怎么转Word下载.docx_第2页
第2页 / 共11页
农历转阳历怎么转Word下载.docx_第3页
第3页 / 共11页
农历转阳历怎么转Word下载.docx_第4页
第4页 / 共11页
农历转阳历怎么转Word下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

农历转阳历怎么转Word下载.docx

《农历转阳历怎么转Word下载.docx》由会员分享,可在线阅读,更多相关《农历转阳历怎么转Word下载.docx(11页珍藏版)》请在冰豆网上搜索。

农历转阳历怎么转Word下载.docx

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周年国庆)是星期五。

再比如计算2006年4月4日,过程如下:

=6+[6/4]+[20/4]-2*20+[26*(4+1)/10]+4-1

=-12(除以7余2,注意对负数的取模运算!

 

不过,以上的公式都只适合于1582年(我国明朝万历十年)10月15日之后的情形。

罗马教皇格里高利十三世在1582年组织了一批天文学家,根据哥白尼日心说计算出来的数据,对儒略历作了修改。

将1582年10月5日到14日之间的10天宣布撤销,继10月4日之后为10月15日。

后来人们将这一新的历法称为“格里高利历”,也就是今天世界上所通用的历法,简称格里历或公历。

电子万年历:

 很多人都一直在找换阴阳曆的公式。

我也尝试过在1988年到1992年之间。

曾读过「高平子」天文前辈所著「学曆散论」瞭解古曆的变更和阴阳曆的缺陷。

才知道由于月球转动的不稳定不规则,确定无公式可寻。

这也是古代中国每百年必改曆的原因。

阴曆最大的问题是在如何置闰。

好像不难,因为阴曆基本法则如下 

月朔日即是初一 

月以中气得名 

以包含雨水中气月为正月,即是「寅」月 

月无中气者为闰月,以前月同名 

如果,日月转动循还有规则的话,推演一套阴阳曆转换的公式并不难。

问题在有时一个太阴月比一个太阳月还要长。

如此一个太阴月就有可能包括两个中气。

此双中气月后的阴曆月名就全部乱掉了,直到下一个「假」闰月后才调整过来。

一般人接触到的阴阳曆是民用曆法,它是政府颁令的以东经120度计算的曆法或称中原标准时间或北京时。

如果,我们用不同时区、不同经度为子午线来重新计算阴阳曆,民用曆法的置闰法则出了很大的问题。

不同时区的闰月可能落在不同月。

换言之,在一百年内,任何两个时区的闰月顺序模式是会不相同的。

高平子前辈书中提到了「曆理置闰法」。

如果应用曆理置闰法到不同时区,则所有不同时区的闰月都落在相同月。

如此不同时区、不同经度的阴阳曆置闰之问题就消失了。

民用置闰和曆理置闰的不同是 

在民用置闰,如果月朔日和中气同一天,则该阴曆月包含那个中气。

在曆理置闰,如果月朔日和中气同一天,月朔日时间必须在中气时间之前,则该阴曆月才包含那个中气。

简言之,民用置闰比较月朔和中气日期;

曆理置闰比较月朔和中气日期、时、分、秒。

由此可知,没有精确的太阳和月亮的时间数字,阴曆的闰月可能会排错了。

基于这些理由,我著手寻找天文公式计算精确的太阳和月亮在纬度的时间。

当年没有网路,发了大半年于美国南加州各大图书馆及大学,找寻答案。

1993年出版了「中美天文万年曆」一书。

书中精确的天文日月时间只从1900到2010年。

因恐2011后时间误差超过一分钟,不够精确,不敢印出。

今年2002从网路资讯,确定太阳和月亮时间的精确度后,百忙中重新整理资料,提供给需要阴阳曆转换公式的朋友。

整理出的太阳和月亮时间数字是从西元1年到2246年。

有曆理和中国民用两套曆法。

数字内容清清楚楚的看出民用曆法的敝端。

例如,从西元1600年到2246年,民用曆法双中气的阴曆月有22个,曆理曆法只有5个。

民用曆法甚至在2033、2128和2242年中,三个月之间居然跑出两个双中气;

换言之,三个月中多出两个「假」闰月。

前后12个阴曆月中有三个闰月,闰月的去留造成许多学者的讨论和困恼。

曆理曆法在此三年中,却没有发现到双中气阴曆月。

闰月的去留只要把双中气月后的「假」闰月取消,则曆理曆法近乎于完美。

由此可知,民用曆法问题很大,应该废除。

上次阴阳曆重大改曆在1645年,已经超过350年。

随著天文科学的进步,中国阴阳曆应该使用较精确的曆理曆法。

免得后代子孙再浪费时间讨论置闰去留的问题。

阴阳曆应用在八字算命、紫微斗数、农民曆、遁甲曆最多。

很多人不知道排八字天干地支只用阳曆而不用阴曆。

发了许多时间在研究阴阳曆的转换。

其实八字只使用太阳中节气,和月亮没有任何关系。

紫微斗数则需要阴曆日期去排命盘。

美国时区的阴曆日期有一半和中国时区的阴曆日期差一天,因为时差超过12小时;

初一就可能在不同日之故。

有位在加拿大职业算命的朋友,精通八字和紫微斗数,研究其女命盘。

八字论父母,合情合理。

斗数父母宫,看不出自己影子。

后来,在中美天文万年曆一书发现了「差一天」之解答。

曾有一位退休博士用了近三十年找寻阴阳曆的公式,问遍两岸各大天文台,得不到答案,直到发现中美天文万年曆一书。

最后,希望我重新整理的中国阴阳曆的天文数字和原始程式,能给有求知欲于阴阳曆转换方法的读友一个答案,以免得不到答案而遗憾终身。

excel公历转农历的四种方法

 尽管通过很多渠道可以轻松获取公历转农历,但是对excel迷们还是很期待用excel来实现公历转农历。

  设想一下,IT部落窝会员们的信息都是以阳历注册的,我们也可以使用下面即将介绍的方法实现excel公历转农历。

excel公历转农历方法一:

使用text函数

  A列是公历日期,我们在B1单元格输入公式:

=TEXT(A1,"

[$-130000]yyyy年m月"

&

IF(LEN(--TEXT(A1,"

[$-130000]dd"

))=1,"

初"

"

"

)&

d"

),下拉完成公历转农历。

excel公历转农历方法二:

使用text+MID函数

  A列仍然是公历,B1输入公式:

=MID("

甲乙丙丁戊己庚辛壬癸"

MOD(TEXT(A1,"

[$-130000]e"

)-4,10)+1,1)&

MID("

子丑寅卯辰巳午未申酉戌亥"

)-4,12)+1,1)&

年"

TEXT(A1,"

[$-130000][DBNum1]m月d日"

即可。

excel公历转农历方法三:

使用text+MID+CHOOSE+YEAR函数

  A1为公历,B1输入:

=CHOOSE(MOD(YEAR(A1)-1900,10)+1,"

庚"

辛"

壬"

癸"

甲"

乙"

丙"

丁"

戊"

己"

CHOOSE(MOD(YEAR(A1)-1900,12)+1,"

子"

丑"

寅"

卯"

辰"

巳"

午"

未"

申"

酉"

戌"

亥"

[dbnum1][$-130000]年m月"

IF(--TEXT(A1,"

[$-130000]d"

)<

11,"

[dbnum1][$-130000]d"

))

excel公历转农历方法四:

使用自定义函数

  上面介绍的excel公历转农历都是使用excel内置函数完成的,有一个弊端就是公式太长,如果使用自定义函数,在公式栏就可以简化输入。

  如下图所示,我们在B2输入公式:

=nongli(A2),即可。

C列农历简称中C2公式是:

=RIGHT(B2,LEN(B2)-8)。

  关于自定义函数的使用方法请参考:

excel自定义函数添加和使用方法

  下面是此自定义函数相关的代码:

PublicFunctionNongLi(OptionalXX_DATEAsDate)

DimMonthAdd(11),NongliData(99),TianGan(9),DiZhi(11),ShuXiang(11),DayName(30),MonName(12)

DimcurTime,curYear,curMonth,curDay

DimGongliStr,NongliStr,NongliDayStr

Dimi,m,n,k,isEnd,bit,TheDate

'

获取当前系统时间

curTime=XX_DATE

天干名称

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)="

狗"

ShuXiang(11)="

猪"

农历日期名

DayName(0)="

*"

DayName

(1)="

初一"

DayName

(2)="

初二"

DayName(3)="

初三"

DayName(4)="

初四"

DayName(5)="

初五"

DayName(6)="

初六"

DayName(7)="

初七"

DayName(8)="

初八"

DayName(9)="

初九"

DayName(10)="

初十"

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)="

三十"

农历月份名

MonName(0)="

MonName

(1)="

正"

MonName

(2)="

二"

MonName(3)="

三"

MonName(4)="

四"

MonName(5)="

五"

MonName(6)="

六"

MonName(7)="

七"

MonName(8)="

八"

MonName(9)="

九"

MonName(10)="

十"

MonName(11)="

MonName(12)="

腊"

公历每月前面的天数

MonthAdd(0)=0

MonthAdd

(1)=31

MonthAdd

(2)=59

MonthAdd(3)=90

MonthAdd(4)=120

MonthAdd(5)=151

MonthAdd(6)=181

MonthAdd(7)=212

MonthAdd(8)=243

MonthAdd(9)=273

MonthAdd(10)=304

MonthAdd(11)=334

农历数据

NongliData(0)=2635

NongliData

(1)=333387

NongliData

(2)=1701

NongliData(3)=1748

NongliData(4)=267701

NongliData(5)=694

NongliData(6)=2391

NongliData(7)=133423

NongliData(8)=1175

NongliData(9)=396438

NongliData(10)=3402

NongliData(11)=3749

NongliData(12)=331177

NongliData(13)=1453

NongliData(14)=694

NongliData(15)=201326

NongliData(16)=2350

NongliData(17)=465197

NongliData(18)=3221

NongliData(19)=3402

NongliData(20)=400202

NongliData(21)=2901

NongliData(22)=1386

NongliData(23)=267611

NongliData(24)=605

NongliData(25)=2349

NongliData(26)=137515

NongliData(27)=2709

NongliData(28)=464533

NongliData(29)=1738

NongliData(30)=2901

NongliData(31)=330421

NongliData(32)=1242

NongliData(33)=2651

NongliData(34)=199255

NongliData(35)=1323

NongliData(36)=529706

NongliData(37)=3733

NongliData(38)=1706

NongliData(39)=398762

NongliData(40)=2741

NongliData(41)=1206

NongliData(42)=267438

NongliData(43)=2647

NongliData(44)=1318

NongliData(45)=204070

NongliData(46)=3477

NongliData(47)=461653

NongliData(48)=1386

NongliData(49)=2413

NongliData(50)=330077

NongliData(51)=1197

NongliData(52)=2637

NongliData(53)=268877

NongliData(54)=3365

NongliData(55)=531109

NongliData(56)=2900

NongliData(57)=2922

NongliData(58)=398042

NongliData(59)=2395

NongliData(60)=1179

NongliData(61)=267415

NongliData(62)=2635

NongliData(63)=661067

NongliData(64)=1701

NongliData(65)=1748

NongliData(66)=398772

NongliData(67)=2742

NongliData(68)=2391

NongliData(69)=330031

NongliData(70)=1175

NongliData(71)=1611

NongliData(72)=200010

NongliData(73)=3749

NongliData(74)=527717

NongliData(75)=1452

NongliData(76)=2742

NongliData(77)=332397

NongliData(78)=2350

NongliData(79)=3222

NongliData(80)=268949

NongliData(81)=3402

NongliData(82)=3493

NongliData(83)=133973

NongliData(84)=1386

NongliData(85)=464219

NongliData(86)=605

NongliData(87)=2349

NongliData(88)=334123

NongliData(89)=2709

NongliData(90)=2890

NongliData(91)=267946

NongliData(92)=2773

NongliData(93)=592565

NongliData(94)=1210

NongliData(95)=2651

NongliData(96)=395863

NongliData(97)=1323

NongliData(98)=2707

NongliData(99)=265877

生成当前公历年、月、日==>

GongliStr

curYear=Year(curTime)

curMonth=Month(curTime)

curDay=Day(curTime)

GongliStr=curYear&

"

If(curMonth<

10)Then

GongliStr=GongliStr&

0"

&

curMonth&

月"

Else

EndIf

If(curDay<

curDay&

日"

计算到初始时间1921年2月8日的天数:

1921-2-8(正月初一)

TheDate=(curYear-1921)*365+Int((curYear-1921)/4)+curDay+MonthAdd(curMonth-1)-38

If((curYearMod4)=0AndcurMonth>

2)Then

TheDate=TheDate+1

计算农历天干、地支、月、日

isEnd=0

m=0

Do

If(NongliData(m)<

4095)Then

k=11

Else

k=12

EndIf

n=k

Do

If(n<

0)Then

ExitDo

'

获取NongliData(m)的第n个二进制位的值

bit=NongliData(m)

Fori=1TonStep1

bit=Int(bit/2)

Next

bit=bitMod2

If(TheDate<

=29+bit)Then

isEnd=1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 电力水利

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1