真正的公农历转换类for VB(23) Else d = SolarMonth(m - 1) End If Else If m = 2 Then d = 28 Else d = SolarMonth(m - 1) End If End If
SolarDays = d End Function
'////////////////////////////////////////////////////////////////////////////////////////////////// ' '主要的函数,用公历年月日对日期对象进行初使化,在此函数内部完成对私有对象属性的设置 ' '////////////////////////////////////////////////////////////////////////////////////////////////// Public Sub sInitDate(ByVal y As Long, ByVal m As Long, ByVal d As Long) Dim i As Long Dim leap As Long Dim Temp As Long Dim offset As Long
mvarDate = m & "/" & d & "/" & y mvarsYear = y mvarsMonth = m mvarsDay = d
'农历日期计算部分 leap = 0 Temp = 0
offset = mvarDate - #1/30/1900# '计算两天的基本差距
For i = 1900 To 2049 'temp = lYearDays(i) '求当年农历年天数
offset = offset - Temp If offset < 1 Then Exit For Next
offset = offset + Temp mvarlYear = i
leap = leapMonth(i) '闰哪个月 mvarIsLeap = False For i = 1 To 12