您当前的位置:首页 > 生肖 > 生肖龙

阴历换算阳历查询(农历换算成阳历转换器)

时间:2024-01-15 10:22:14 作者:倚势凌人 来源:网友上传

本文目录一览:

如何分辨公历、农历、阴历和阳历?

“岁朝”指农历正月初一,是中国新年的第一天。 今天我们来继续聊一聊历法方面的话题。

普通人如何分辨公历、农历、阴历和阳历?

阳历:

阳历是根据地球围绕太阳公转来设计的历法,这种历法起源于西方,古埃及人已经开始使用。古埃及历每月30天,一共12个月,年底增加5天的新年,一共是365天。公转的一个回归年是365.2421897天,所以每隔4年就会少了一天。古埃及历没有闰年,所以每隔1460年就会多出一年,被称之为“天狗周期”。阴历:

古代人对于太阳的观察能力比较弱,对于月亮的观察能力比较强。所以,更多的地方使用的是阴历,也就是通过月亮的月相周期来计算的历法。一般来讲分成大小月,大月30天,小月29天。月亮绕地球转动一周周期为29.5306天。一般阴历中设定没有月亮的夜晚就是三十和初一,满月就是十五。

农历:

阴历确定容易,但是农作物的生长需要按照阳历来确定。所以单纯使用阴历的国家不多,基本上都是阴阳历。中国传统历法农历就是阴阳历,一方面是通过月相来确定的阴历,另一方面通过推算阳历的节气。阴阳历需要兼顾到阴历和阳历,所以要求较高,古人推算的历法经常每隔一段时间就会因为误差过大而失效。直到近代,西方阳历传入之后,有了更先进的推算手段,才确定下来。南京紫金山天文台通过先进手段,参考国际天文成果,对清代的时宪历进行修正,推出了紫金历。

公历:

古罗马人早期使用的是阴历,称之为儒略前历。这是因为在公元前46年,凯撒在希腊天文学家的建议下,修改历法,启用阳历的缘故,这个历法称之为儒略历。儒略历一直使用到1582年,因为闰年误差的缘故,被教皇废除。教皇格里高利推行了新的历法,即现行的阳历格里高利历。因为格里高利历后来随着西方文明的崛起传播到世界各地,成为大家公认的历法,所以称为公历。

结论:

中国农历兼顾了太阳与月亮的运行规律,在年的时间计算上,尽量接近于回归年,能完整准确地反映四季变化;在月的时间计算上,尽量接近朔望月,能准确地反映月相的盈亏。如此,中国的历法既能指导农业生产、天时变化(太阳历的专长)又能反映月亮对人体内部的影响(阴历的专长)。

当前中国大陆仍然是公历和农历并行,在日常生活中使用公历,在民间使用农历。现行的公历是格里高利历,现行的农历是经过修正的紫金历(由南京紫金山天文台推算的历法)。

五大历法与公历的转换

以下网址是3个历法与公历的转换和查询:

犹太历:

https://cn.calcuworld/%E7%8A%B9%E5%A4%AA%E6%97%A5%E5%8E%86

伊斯兰历:

https://islam.bmcx/2022-01-01__islam/

伊朗历:

https://cn.calcuworld/%E6%B3%A2%E6%96%AF%E6%97%A5%E5%8E%86

网上有一些伊斯兰历的日期计算有错误,以上面网址的转换为准。

华夏历的年份:公历+2697(春节至元旦期间)、公历+2697-1(元旦至春节期间)

华夏历的日期:农历

犹太历年份:公历+3760

华夏历:

中国的农历,古时称为夏历,创立于夏代,现代才把名称改为农历,中国的道历(道家专用历法)是以夏历为准,道历的起始元年是黄帝纪元(公元前2697年)开始。2697这个数字不是现在才有,在道家内部用了很久。由于历法的原因,中国也叫中华或者华夏,中国夏历也叫中华夏历,简称为:华夏历。

历:

世界通用的公元历,原称为历,源于西方,也称为西历、格里历。起始元年以耶稣诞生的那年开始。西方将历推广到全世界各国之后,为了淡化宗教色彩,改名称为公元历,简称为公历。中国是在辛亥革命爆发后的次年(1912年),当时的政府采用公历作为国历,但公历实际上就是历。

犹太历:

犹太历也称为希伯来历,要用于世界各地的犹太人群体。起始元年是以上帝创世开始,这一做法始于中世纪,源于当时人们对《圣经》的研究。犹太历年份:公历年+3760,如果你记不住3760这个数字,有一个方法可以记住,2014年的马航MH370客机失联,370这个数字加上6,就是3760。犹太历的第12月的名称是亚达月,亚达月实际有2个,第二亚达月实际上是第13月,也就是说,与其它历法共12个月不同的是,犹太历有一些年份是13个月。

伊斯兰历:

伊斯兰历源于圣经历法,使用于多数的伊斯兰教的地区。在中国称为回历。

伊朗历:

伊朗历也称为波斯历,使用于伊朗和阿富汗等国。

农历转公历

Public Function LTG(Optional xx_date As Date, Optional irow As Integer) '农历转公历

Dim LunarYear, LunarMonth, LunarDay

Dim NongliData(100)

'农历数据

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

NongliData(100) = 1706

Dim m, monthCount, toCurMonthCnt, LeapMonth, theDate, curTime

Dim i1, i2, i3, bit

'获取当前变量日期

curTime = xx_date

'LunarYear = Year(curTime)

LunarYear = Year(Now())

LunarMonth = Month(curTime)

LunarDay = Day(curTime)

m = LunarYear - 1921

monthCount = 0

toCurMonthCnt = 0

LeapMonth = -1

theDate = LunarDay - 1

For i1 = 0 To m - 1 Step 1

If (NongliData(i1) < 4095) Then

monthCount = 11

Else

monthCount = 12

End If

For i2 = 0 To monthCount Step 1

bit = NongliData(i1)

For i3 = 1 To i2 Step 1

bit = Int(bit / 2)

Next

bit = bit Mod 2

theDate = theDate + 29 + bit

Next

Next

If (NongliData(m) < 4095) Then

monthCount = 11

toCurMonthCnt = monthCount - LunarMonth + 2

Else

monthCount = 12

toCurMonthCnt = monthCount - LunarMonth + 1

LeapMonth = Int(NongliData(m) / 65536)

If LunarMonth <= LeapMonth Then toCurMonthCnt = toCurMonthCnt + 1

End If

For i2 = monthCount To toCurMonthCnt Step -1

bit = NongliData(m)

For i3 = 1 To i2 Step 1

bit = Int(bit / 2)

Next

bit = bit Mod 2

theDate = theDate + 29 + bit

Next

LTG = DateAdd("d", theDate, "1921/2/8")

If irow = 1 Then

Sheet1.Cells(1, 10) = "'" & LTG

Else

Sheet1.Cells(irow, 4) = "'" & LTG

End If

End Function

Private Sub CommandButton1_Click()

If IsDate(Sheet1.Cells(1, 9)) = True And IsNull(Sheet1.Cells(1, 9)) = False And Sheet1.Cells(1, 9) <> "" Then

aaa = LTG(Sheet1.Cells(1, 9), 1)

End If

Dim i As Integer

For i = 2 To 100

Sheet1.Cells(i, 4) = ""

If Sheet1.Cells(i, 2) <> "" And IsNull(Sheet1.Cells(i, 2)) = False And IsDate(Sheet1.Cells(i, 2)) = True Then

If Sheet1.Cells(i, 3) = "Y" Then

bbb = LTG(Sheet1.Cells(i, 2), i)

Else

Sheet1.Cells(i, 4) = "'" & Sheet1.Cells(i, 2)

End If

Else

Application.DisplayAlerts = False

Application.Quit

End If

Next i

End Sub

热门推荐