打印本文 打印本文 关闭窗口 关闭窗口
VB公农历1.02版,不需要任何DLL
作者:武汉SEO闵涛  文章来源:敏韬网  点击数4058  更新时间:2009/4/23 15:42:05  文章录入:mintao  责任编辑:mintao
lMonth = i
    mvarlDay = offset
       
End Sub

''''//////////////////////////////////////////////////////////////////////////////////////////////////
''''
''''主要的函数,用农历年月日对日期对象进行初使化,在此函数内部完成对私有对象属性的设置
''''
''''//////////////////////////////////////////////////////////////////////////////////////////////////
Public Sub lInitDate(ByVal y As Long, ByVal m As Long, ByVal d As Long, Optional LeapFlag As Boolean = False)
    Dim i As Long
    Dim leap As Long
    Dim Temp As Long
    Dim offset As Long

    mvarlYear = y
    mvarlMonth = m
    mvarlDay = d
   
    offset = 0
   
    For i = 1900 To y - 1
       Temp = LunarYearDays(i - 1900) ''''求当年农历年天数
       offset = offset + Temp
    Next
   
    leap = leapMonth(y) ''''闰哪个月
    If m <> leap Then
       mvarIsLeap = False  ''''当前日期并非闰月
    Else
       mvarIsLeap = LeapFlag  ''''使用用户输入的是否闰月月份
    End If
   
    If (m < leap) Or (leap = 0) Then   ''''当闰月在当前日期后
        For i = 1 To m - 1
           Temp = lMonthDays(y, i) ''''计算非闰月天数
           offset = offset + Temp
        Next
    Else   ''''在闰月后
        If mvarIsLeap = False Then  ''''用户要计算非闰月的月份
             For i = 1 To m - 1
                Temp = lMonthDays(y, i) ''''计算非闰月天数
                offset = offset + Temp
             Next
             If m > leap Then
                Temp = leapDays(y)   ''''计算闰月天数
                offset = offset + Temp
             End If
            
        Else  ''''此时只有mvarisleap=ture,
               For i = 1 To m
                 Temp = lMonthDays(y, i) ''''计算非闰月天数
                 offset = offset + Temp
               Next
        End If
    End If
   
    offset = offset + d ''''加上当月的天数
    mvarDate = DateAdd("d", offset, #1/30/1900#)
    mvarsYear = Year(mvarDate)
    mvarsMonth = Month(mvarDate)
    mvarsDay = Day(mvarDate)

End Sub

''''本模块用于打印出1900-2049年 每年农历的天数,可以用于数组初使化
''''Public Sub printf()
''''    Dim i As Long, j As Long
''''    Dim temp(10) As Long
''''    Dim base As Long
   
''''    base = 1900
''''    For i = 1 To 15
''''       For j = 1 To 10
''''         temp(j - 1) = lYearDays((i - 1) * 10 + (j - 1) + base) ''''求当年农历年天数
''''       Next
''''       Debug.Print CStr(temp(0)) & " , " & CStr(temp(1)) & " , " & CStr(temp(2)) & " , " & CStr(temp(3)) & " , " & CStr(temp(4)) & " , " & CStr(temp(5)) & " , " & CStr(temp(6)) & " , " & CStr(temp(7)) & " , " & CStr(temp(8)) & " , " & CStr(temp(9)) & " , " & " _ "
''''    Next
''''End Sub

上一页  [1] [2] [3] [4] [5] [6] 

打印本文 打印本文 关闭窗口 关闭窗口