设置excel表格日期显示为农历的步骤如下:
1、打开需要 *** 作的excel表格,在A1单元格输入如下函数:“=TEXT(NOW(),"[$-130000]YYYY-M-D")”。
2、单元格中可以观察到出现了一个日期:农历日期为六月初一。
3、如果要将农历形式完全显示出来,就可以输入下列公式:=MID(" 甲乙丙丁戊己庚辛壬癸",MOD(TEXT(NOW(),"[$-130000]e")-4,10)+1,1)&MID("子丑寅卯辰巳午未申酉 戌亥",MOD(TEXT(NOW(),"[$-130000]e")-4,12)+1,1)&"年"&TEXT(NOW()," [$-130000][DBNum1]m月d日")。
如下图,需要对日期:2019/11/20转换为农历日期
如何快速的计算得到该日期对应的农历呢?
首先,需要选中计算填充为农历日期的单元格
选择单元格后,输入函数:
=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月d日"
输入函数后,回车确定,就能将公历日期转换成农历日期了。
下面就是最后转换为农历日期填充的效果了,如果日期较多,可以批量填充函数即可。
公历和农历之间如何转换 公历,它是国际通用的。阳历 以地球绕太阳转一圈的时间定做一年,共3 65天5小时48分46秒。平年只计365天这个 整数,不计尾数;一年分做12个月,大月31 天,小月30天,二月只有28天。四年的尾 数积累起来共1天光景,加在第四年的二月 里,这一年叫做闰年。所以闰年的二月有2 9天。阴历以月亮圆缺一次的时间定做一个 月,共29天半。为了算起来方便,大月定 做30天,小月29天,一年12个月中,大小 月大体上交替排列。阴历一年只有354天左 右,也没有平年闰年的差别。 阴历不考虑地球绕太阳的运行,因此使得 四季的变化在阴历上就没有固定的时间, 它不能反映季节,这是一个很大的缺点。 为了克服这个缺点,后来人们定了一个折 衷的历,就是所谓阴阳合历。现在我国还 在使用的夏历(也有人叫它农历或阴历),就 是这种阴阳合历。它跟阴历一样,也以月 亮圆缺一次的时间定做一个月,也是大月3 0天,小月29天,可是它又用加闰月的办法 ,使得平均每年的天数跟阳历全年的天数 相接近,来调整四季。夏历约每过二、三 年多一个闰月。“阴历”又名“太阴历”,系以 月球绕行地球一周为一月,再配合地球绕 日一周之时数为一年,实际上等于阴阳合 历,我国在民国元年前采用此历,为与现 行之历相对称,故名之曰“旧历”。一般人以 为阴历适合于农家,而名之日“农历”。农历转换公历对照表 是公历1945年4月29日 星期日
如何将农历转换为公历 是公历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 中阳历日期如何转换成阴历日期? 2007版的excel可用下面公式转换:
=TEXT(A1,[$-130000]yyyy年m月&IF(LEN(--TEXT(A1,[$-130000]dd))=1,初,)&d)
公历农历转换 回历、公历、农历的换算
(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日,因此只要查清二者在月份上关系,便可将回历换算为中国农历。马以愚先生称:“>>
农历转换成公历的计算公式? 因为公历(现在用的是格里历,以前还曾用儒列历)和中国农历都不是严格按一个公式计算得到的,所以两个历法没有直接的公式。
试图用一个简单的公式,而不利用许多像万年历一样的数据(尽管可以简化),就达到公农历转换的目的,这是不可能的。我们能见到的所有公农历转换的软件,都存有多少不等的一些年份的历法数据。
这些数据之中,最重要的是农历的每月天数。因为农历是阴阳历,阴历部分(按月相编的部分)决定月日,阳历部分(按太阳高度编的部分)就是节气。节气基本上是与公历直接对应的,可以较容易的推算;但月相周期与地球公转的关系相对复杂,一般都需要天文观测数据授时,所以农历每月是大月还是小月没有简单的公式。
至于公历和农历的置闰,倒都有一定的方式推算,并不困难。
如果只是天文数据,其实都还是可以算的――因为天文周期十分稳定,我们只要严格地按天文周期推算就可以了。可是还有更为麻烦的一点,就是公历和农历这些历法,并不是完全严格地按照天文上的实际周期进行的,还有许多人为的因素。最著名的就是罗马皇帝几次修改2、8等月份长短,以及儒列历中因计算不准确而人为地去掉了十天等事。中国农历也有因为古代天文观测不准确造成的 颁布的历法与天象不吻合的(我们不能苛求古人观测的精度)。所以这两部历法都是与一个时期社会有关的东西,也就没有一定的规律可循了。
电子表格中怎样将农历转换为公历 1、农历转换为公历,首先需要一个农历和公历的对照表
2、假设对照表的格式为:A列为农历,B列为公历。
3、此时可以用VLOOKUP函数进行转换,公式为:=VLO畅KUP(需要转换的农历日期,A:B,2,0)
4、特别注意:需要转换的农历日期必须与对照表中A列格式一致。
日期里的农历公历阴历阳历怎么换算? 百度一下 太复杂了 自己研究
求农历公历转换算法 编程不太懂
传下来 口诀
乘五除四九加日
双月间隔三十天。
一二自加整少一,
三五七八十尾前。
具体的算法你可网上找下资料 百度上很多的 我就不多累赘了的公元是“公历纪元”的简称,是国际通行的纪年体系。以传说中耶稣基督的生年为公历元年(相当于中国西汉平帝元年)。公元常以 AD(拉丁文 Anno Domini 的缩写,意为“主的生年”)表示,公元前则以 BC(英文 Before Christ 的缩写,意为“基督以前”)表示。这种纪年体系开始在欧洲各国采用。 公元纪年制,过去也叫做“耶稣基督纪元”、“纪元”、“西元”等。在西方国家,用略语AD表示,取自拉丁语Anno Domini,Anno是“年”,Domini是“主”的意思,在英语中是“in the year of our Lord”,“in the year of the Christian era”,大致是“吾主纪元”、“耶稣基督纪元”的意思。“公元前”,西方略语为BC,即“before Christ”,“耶稣基督之前”的意思。 所以,公元纪年制是从耶稣基督降生开始纪年这个需要VBA了
按ALT+F11 再 插入 模块
把下面的代码制复制到模块中,然后 在B1中输入:
=calendar(A1)
假设日期在A1
Option Explicit
Dim WeekName(7), MonthAdd(11), NongliData(120), 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, num1, num2
Dim year, month, day, grid, grid_date
Function calendar(grid)
grid_date = grid
year = Mid(grid_date, 1, 4)
num1 = InStr(grid_date, "-")
num2 = InStr(6, grid_date, "-")
If (num2 - num1) = 3 Then
month = Mid(grid_date, 6, 2)
day = Mid(grid_date, 9, 2)
Else
month = Mid(grid_date, 6, 1)
day = Mid(grid_date, 8, 2)
End If
'星期名
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) = "狗"
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) =
NongliData(2) = 1701
NongliData(3) = 1748
NongliData(4) =
NongliData(5) = 694
NongliData(6) = 2391
NongliData(7) =
NongliData(8) = 1175
NongliData(9) =
NongliData(10) = 3402
NongliData(11) = 3749
NongliData(12) =
NongliData(13) = 1453
NongliData(14) = 694
NongliData(15) =
NongliData(16) = 2350
NongliData(17) =
NongliData(18) = 3221
NongliData(19) = 3402
NongliData(20) =
NongliData(21) = 2901
NongliData(22) = 1386
NongliData(23) =
NongliData(24) = 605
NongliData(25) = 2349
NongliData(26) =
NongliData(27) = 2709
NongliData(28) =
NongliData(29) = 1738
NongliData(30) = 2901
NongliData(31) =
NongliData(32) = 1242
NongliData(33) = 2651
NongliData(34) =
NongliData(35) = 1323
NongliData(36) =
NongliData(37) = 3733
NongliData(38) = 1706
NongliData(39) =
NongliData(40) = 2741
NongliData(41) = 1206
NongliData(42) =
NongliData(43) = 2647
NongliData(44) = 1318
NongliData(45) =
NongliData(46) = 3477
NongliData(47) =
NongliData(48) = 1386
NongliData(49) = 2413
NongliData(50) =
NongliData(51) = 1197
NongliData(52) = 2637
NongliData(53) =
NongliData(54) = 3365
NongliData(55) =
NongliData(56) = 2900
NongliData(57) = 2922
NongliData(58) =
NongliData(59) = 2395
NongliData(60) = 1179
NongliData(61) =
NongliData(62) = 2635
NongliData(63) =
NongliData(64) = 1701
NongliData(65) = 1748
NongliData(66) =
NongliData(67) = 2742
NongliData(68) = 2391
NongliData(69) =
NongliData(70) = 1175
NongliData(71) = 1611
NongliData(72) =
NongliData(73) = 3749
NongliData(74) =
NongliData(75) = 1452
NongliData(76) = 2742
NongliData(77) =
NongliData(78) = 2350
NongliData(79) = 3222
NongliData(80) =
NongliData(81) = 3402
NongliData(82) = 3493
NongliData(83) =
NongliData(84) = 1386
NongliData(85) =
NongliData(86) = 605
NongliData(87) = 2349
NongliData(88) =
NongliData(89) = 2709
NongliData(90) = 2890
NongliData(91) =
NongliData(92) = 2773
NongliData(93) =
NongliData(94) = 1210
NongliData(95) = 2651
NongliData(96) =
NongliData(97) = 1323
NongliData(98) = 2707
NongliData(99) =
'生成当前公历年、月、日 ==> GongliStr
curYear = year
curMonth = month
curDay = day
GongliStr = curYear "年"
If (curMonth < 10) Then
GongliStr = GongliStr "0" curMonth "月"
Else
GongliStr = GongliStr curMonth "月"
End If
If (curDay < 10) Then
GongliStr = GongliStr "0" curDay "日"
Else
GongliStr = GongliStr curDay "日"
End If
'生成当前公历星期 ==> WeekdayStr
curWeekday = Weekday(curTime)
WeekdayStr = WeekName(curWeekday)
'计算到初始时间1921年2月8日的天数:1921-2-8(正月初一)
TheDate = (curYear - 1921) 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38
If ((curYear Mod 4) = 0 And curMonth > 2) Then
TheDate = TheDate + 1
End If
'计算农历天干、地支、月、日
isEnd = 0
m = 0
Do
If (NongliData(m) < 4095) Then
k = 11
Else
k = 12
End If
n = k
Do
If (n < 0) Then
Exit Do
End If
'获取NongliData(m)的第n个二进制位的值
bit = NongliData(m)
For i = 1 To n Step 1
bit = Int(bit / 2)
Next
bit = bit Mod 2
If (TheDate <= 29 + bit) Then
isEnd = 1
Exit Do
End If
TheDate = TheDate - 29 - bit
n = n - 1
Loop
If (isEnd = 1) Then
Exit Do
End If
m = m + 1
Loop
curYear = 1921 + m
curMonth = k - n + 1
curDay = TheDate
If (k = 12) Then
If (curMonth = (Int(NongliData(m) / 65536) + 1)) Then
curMonth = 1 - curMonth
ElseIf (curMonth > (Int(NongliData(m) / 65536) + 1)) Then
curMonth = curMonth - 1
End If
End If
'生成农历天干、地支、属相 ==> NongliStr
NongliStr = "农历" TianGan(((curYear - 4) Mod 60) Mod 10) DiZhi(((curYear - 4) Mod 60) Mod 12) "年"
NongliStr = NongliStr "(" ShuXiang(((curYear - 4) Mod 60) Mod 12) ""
'生成农历月、日 ==> NongliDayStr
If (curMonth < 1) Then
NongliDayStr = "闰" MonName(-1 curMonth)
Else
NongliDayStr = MonName(curMonth)
End If
NongliDayStr = NongliDayStr "月"
NongliDayStr = NongliDayStr DayName(curDay) ")"
calendar = NongliStr NongliDayStr
End Function
——————————————PS 在网上借鉴的相关资料首先,进行公历农历换算必须将天干、地支编号记住:天干:甲(4)、乙(5)、丙(6)、丁(7)、戊(8)、己(9)、庚(10)、辛(1)、壬(2)、癸(3)。地支:子(4)、丑(5)、寅(6)、卯(7)、辰(8)、巳(9)、午(10)、未(1)、申(2)、酉(3)、戌(4)、亥(5)。
如要将公历农历换算即将公历换成干支纪年,以公元年的尾数在天干中找出所对应的。然后,将公元纪年除以12,用余数在地支中找出所对应的地支。这样,公元纪年就换算成了干支纪年。如:公元2004年是干支纪年的什么年?这里教你一个较简单的换算方法。
进行公历农历换算首先要先记准十个天干和十二个地支,再记住一个历史事件的公元纪年和干支纪年分别是哪年,如辛亥革命是1911年。之后就可以以此为借助点来计算。如:1911年是辛亥年,问你2009年公历农历换算后是干支纪年的什么年?换算步骤如下:(1)先2009-1911=98,再98÷10=9余8,用这个余数8定天干。(也就是假如没有余数那2008年的天干就和1911年的天干是一样的即是“辛”假如余数是1,那2009年的天干就是在1911年天干“辛”的后面一个字,即是“壬”。以此类推之。)也就是2009年的天干是“辛”后第8个字即“己”。0用98÷12=8余2,用这个余数2定地支。(方法同上)也就是2009年的地支是“亥”后第二个字即“丑”。把天干和地支合在一起即2009年的干支纪年是己丑年。1、农历转换为公历,首先需要一个农历和公历的对照表
2、假设对照表的格式为:A列为农历,B列为公历。
3、此时可以用VLOOKUP函数进行转换,公式为:=VLOOKUP(需要转换的农历日期,A:B,2,0)
4、特别注意:需要转换的农历日期必须与对照表中A列格式一致。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)