万年历小程序有阳历跟老历的区别吗

万年历小程序有阳历跟老历的区别吗,第1张

万年历小程序有阳历跟老历的区别吗

黄历,又称老黄历、皇历、通胜等,因此应为万年历跟黄历(老黄历)的不同之处:

1、历史起源不同中华农历老黄历万年历。

万年历源自商朝国君祖乙命万年观测日月变化,万年经过长期观察,精心推算,制定出了准确的太阳历,国君为嘉奖其作为,将太阳历命名为“万年历”。

黄历万年历–带农历与黄历的万年历哪里

而黄历(老黄历)则是由于上古时代人们在岁星纪年和占卜的基础上设想天体运行变化所得,直到唐代才有定型的黄历。

2、时间跨度不同

万年历中的“万年”表示时间跨度大,并非真指一万年,但万年历记录的时间还是比黄历长,最少包含年的公历、农历、干支历、回历、历等多种历法,且还包含黄历相关吉凶宜忌、节假日、提醒等信息。

而黄历则一般以年为时间跨度印刷出版,也能显示示公历、农历和干支历等多套历法,并附加大量与趋吉避凶相关的规则和内容。

3、记录载体不同神机算老黄历911查询。

万年历由于时间跨度长,通常以电子万年历或是APP形式体现。而黄历则一般以书籍印刷或是日历形式展现。

2、万年历日历带农历黄历:日历和万年历有什么区别

1、时间范围:万年历是记录一定时间范围内(比如年或更多)的具体阳历与阴历的日期的年。万年只是一种象征,表示时间跨度大。而日历一般为一年。

2、使用范围:日历是一种日常使用的出版物,用于记载日期等相关信息。每页显示一日信息的叫日历,每页显示一个月信息的叫月历,每页显示全年信息的叫年历。

而万年历一般有记录黄历相关吉凶宜忌、节假日、提醒等多种功能信息,方便有需要的人查询使用。万年只是一种象征,表示时间跨度大

万年历是我国古代中最古老的一部太阳历。为纪念历法编撰者万年功绩,便将这部历法命名为“万年历”。而现在所使用的万年历,即:包括若干年或适用于若干年的历书。周易万年历老黄历查询。

用VB做万年历,非常关键点就是农历写法,参考代码如下:

#Region " 返回农历 "

'返回农历

'cCalendar.MaxSupportedDateTime 返回支持的最大日期,即2101-1-28

'cCalendar.MinSupportedDateTime 返回支持的最小日期,即190-2-19

Private cCalendar As New System.Globalization.ChineseLunisolarCalendar

Public Function PubFunGet_CNDate(ByVal sDateTime As Date) As String

cCalendar = New System.Globalization.ChineseLunisolarCalendar

Dim lyear As Integer = cCalendar.GetYear(sDateTime)

Dim lmonth As Integer = cCalendar.GetMonth(sDateTime)

Dim lday As Integer = cCalendar.GetDayOfMonth(sDateTime)

Dim lweek As Integer = cCalendar.GetDayOfWeek(sDateTime)

'获取闰月, 0 则表示没有闰月

Dim leapMonth As Integer = cCalendar.GetLeapMonth(lyear)

Dim isleap As Boolean = False

If (leapMonth >0) Then

If (leapMonth = lmonth) Then

'闰月

isleap = True

lmonth = lmonth - 1

ElseIf (lmonth >leapMonth) Then

lmonth = lmonth - 1

End If

End If

Return String.Concat(GetLunisolarYear(lyear), IIf(isleap = True, "闰年", "年"), GetLunisolarMonth(lmonth), "月", GetLunisolarDay(lday))

End Function

'十天干

Private tiangan As String() = {"甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"}

'十二地支

Private dizhi As String() = {"子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"}

'十二生肖

Private shengxiao As String() = {"鼠", "牛", "虎", "免", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"}

'农历月

Private months As String() = {"正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二(腊)"}

'农历日

Private days1 As String() = {"初", "十", "廿", "三"}

Private days As String() = {"一", "二", "三", "四", "五", "六", "七", "八", "九", "十"}

'返回农历年(天干 地支 生肖)

Private Function GetLunisolarYear(ByVal year As Integer) As String

GetLunisolarYear = ""

If (year >3) Then

Dim tgIndex As Integer = (year - 4) Mod 10

Dim dzIndex As Integer = (year - 4) Mod 12

Return tiangan(tgIndex) &dizhi(dzIndex) &"[" &shengxiao(dzIndex) &"]"

End If

'无效的年份!

End Function

'返回生肖

Private Function GetShengXiao(ByVal sDateTime As Date) As String

Return shengxiao(cCalendar.GetTerrestrialBranch(cCalendar.GetSexagenaryYear(sDateTime)) - 1)

End Function

'返回农历月

Private Function GetLunisolarMonth(ByVal month As Integer) As String

GetLunisolarMonth = ""

If (month <13 AndAlso month >0) Then

Return months(month - 1)

End If

'无效的月份!

End Function

'返回农历日

Private Function GetLunisolarDay(ByVal day As Integer) As String

GetLunisolarDay = ""

If (day >0 AndAlso day <32) Then

If (day <>20 AndAlso day <>30) Then

Return String.Concat(days1((day - 1) \ 10), days((day - 1) Mod 10))

Else

Return String.Concat(days((day - 1) \ 10), days1(1))

End If

End If

'无效的日!

End Function

#End Region


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10953899.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-12
下一篇 2023-05-12

发表评论

登录后才能评论

评论列表(0条)

保存