陰歷就是日歷上的小字,一般的過年過節時的日自就是陰歷,比如八月十五中秋節我們說的八月十五就是陰歷,相反陽歷就是日歷上的大字,陽歷比陰歷過得快!一般沒什沒節的話很少有人提陰歷的,對了,一般過生日就是陰歷,但有的人過兩個,一個陰歷的一個陽歷的,但先過的是陽歷!應該懂了吧!嘻嘻
陰歷陽歷農歷到底有什么區別?這下終于弄明白了!
陽歷就是國際上通行的歷法,也叫公歷
而陰歷是中國等一些國家由農業耕作的規律總結出來的歷法,也叫農歷
區分的方法很簡單,日歷上一般都是同時寫出陽歷和陰歷的。寫數字的就是陽歷,比如10月31日。寫漢字的就是陰歷,比如八月初一
陰歷的月份比陽歷的月份晚將近兩個月。比如陽歷12月,陰歷是10月
公歷是指陽歷 指上班人員 農歷是農業的一種方式 叫做陰歷
陽歷和陰歷之間是不能換算的,二者采用的計算方法不同,沒有特殊關系可以查詢,只能分別計算。
公歷是陽歷的一種,陽歷就是以地球繞太陽公轉的運動周期為基礎而制定的歷法。
中國農歷中每月的天數是根據月亮運動周期確立的,平均每月29.5306日。一年12個月只有354.3672天。而以地球圍繞太陽公轉時間確定的公(陽)歷,一年有365.2422天。這樣,按農歷計算,一年的天數比公歷就少了10.875天,差不多是11天;19年就少了209天。按農歷每月30天計,209天除以30是6.9666。也就是說,在19年中,農歷時間比公歷差不多少了7個月。為了補上7個月,農歷采取了設置閏月的方法——19年七閏。即在農歷的19年中,有12個每年12個月的平年,和7個每年13個月的閏年。閏年分別為第3、5、8、11、14、17、19年。這樣一來,19個公歷年的日數和19個農歷年的日數就差不多相等了
這樣一算,公歷所對應的農歷日子,每19年輪回一次。因此,人們每逢19的倍數生辰的時候,生日當天有可能既是農歷生日又是公歷生日。但因為農歷與公歷的準確天數都不是整數,農歷和公歷在19年中的天數也有細微的差別。經過幾十年甚至上百年的積累,當小數變成了整數時,兩種歷法生日才會完全重合;更多的時候是相差一天。另外值得一提的是,2月29日出生的人,在76歲那年,兩種歷法生日才有可能重合.我就是沒有重合的那一個。
excel公歷轉農歷方法一:使用text函數
假設A列是公歷日期,A1是公歷日期,我們在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("子丑寅卯辰巳午未申酉戌亥",MOD(TEXT(A1,"[$-130000]e")-4,12)+1,1)&"年"&TEXT(A1,"[$-130000][DBNum1]m月d日")
即可。
這里增加了參數[DBNum1],表示數值以“一、二、三......”中文格式顯示。
excel公歷轉農歷方法三:使用text+MID+ CHOOSE+ YEAR函數
A1為公歷,B1輸入:
=CHOOSE(MOD(YEAR(A1)-1900,10)+1,"庚","辛","壬","癸","甲","乙","丙","丁","戊","己")&CHOOSE(MOD(YEAR(A1)-1900,12)+1,"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥")&TEXT(A1,"[dbnum1][$-130000]年m月"&IF(--TEXT(A1,"[$-130000]d")<11,"初","")&TEXT(A1,"[dbnum1][$-130000]d"))
這里可以對初幾進行顯示
excel公歷轉農歷方法四:使用自定義函數
上面介紹的excel公歷轉農歷都是使用excel內置函數完成的,有一個弊端就是公式太長,如果使用自定義函數,在公式欄就可以簡化輸入。
如下圖所示,我們在B2輸入公式:=nongli(A1),即可。C列農歷簡稱中C1公式是:=RIGHT(B1,LEN(B1)-8)。
下面是此自定義函數相關的代碼:
Public?Function?NongLi(Optional?XX_DATE?As?Date)
Dim?MonthAdd(11),?NongliData(99),?TianGan(9),?DiZhi(11),?ShuXiang(11),?DayName(30),?MonName(12)
Dim?curTime,?curYear,?curMonth,?curDay
Dim?GongliStr,?NongliStr,?NongliDayStr
Dim?i,?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
GongliStr?=?GongliStr?&?curMonth?&?"月"
End?If
If?(curDay?<?10)?Then
GongliStr?=?GongliStr?&?"0"?&?curDay?&?"日"
Else
GongliStr?=?GongliStr?&?curDay?&?"日"
End?If
'計算到初始時間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)
NongLi?=?NongliStr?&?NongliDayStr
End?Function