打印本文 打印本文 关闭窗口 关闭窗口
真正的公农历转换类for VB
作者:武汉SEO闵涛  文章来源:敏韬网  点击数4341  更新时间:2009/4/23 18:59:22  文章录入:mintao  责任编辑:mintao
_
        &H104AF5, &H104970, &H1064B0, &H1074A3, &H10EA50, &H106B58, &H1055C0, &H10AB60, &H1096D5, &H1092E0, _
        &H10C960, &H10D954, &H10D4A0, &H10DA50, &H107552, &H1056A0, &H10ABB7, &H1025D0, &H1092D0, &H10CAB5, _
        &H10A950, &H10B4A0, &H10BAA4, &H10AD50, &H1055D9, &H104BA0, &H10A5B0, &H115176, &H1052B0, &H10A930, _
        &H107954, &H106AA0, &H10AD50, &H105B52, &H104B60, &H10A6E6, &H10A4E0, &H10D260, &H10EA65, &H10D530, _
        &H105AA0, &H1076A3, &H1096D0, &H104BD7, &H104AD0, &H10A4D0, &H11D0B6, &H10D250, &H10D520, &H10DD45, _
        &H10B5A0, &H1056D0, &H1055B2, &H1049B0, &H10A577, &H10A4B0, &H10AA50, &H11B255, &H106D20, &H10ADA0)
   For i = 0 To 149
     LunarInfo(i) = tempArray(i)
   Next
  
   tempArray = Array( _
                384, 354, 355, 383, 354, 355, 384, 354, 355, 384, _
                354, 384, 354, 354, 384, 354, 355, 384, 355, 384, _
                354, 354, 384, 354, 354, 385, 354, 355, 384, 354, _
                383, 354, 355, 384, 355, 354, 384, 354, 384, 354, _
                354, 384, 355, 354, 385, 354, 354, 384, 354, 384, _
                354, 355, 384, 354, 355, 384, 354, 383, 355, 354, _
                384, 355, 354, 384, 355, 353, 384, 355, 384, 354, _
                355, 384, 354, 354, 384, 354, 384, 354, 355, 384, _
                355, 354, 384, 354, 384, 354, 354, 384, 355, 355, _
                384, 354, 354, 383, 355, 384, 354, 355, 384, 354, _
                354, 384, 354, 355, 384, 354, 385, 354, 354, 384, _
                354, 354, 384, 355, 384, 354, 355, 384, 354, 354, _
                384, 354, 355, 384, 354, 384, 354, 354, 384, 355, _
                354, 384, 355, 384, 354, 354, 384, 354, 354, 384, _
                355, 355, 384, 354, 384, 354, 354, 384, 354, 355)
  
   For i = 0 To 149
     LunarYearDays(i) = tempArray(i)
   Next
  
   SolarMonth = Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31)
   Gan = Array("甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸")
   Zhi = Array("子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥")
   Animals = Array("鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪")
   SolarTerm = Array("小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至")
   sTermInfo = Array(0, 21208, 42467, 63836, 85337, 107014, 128867, 150921, 173149, 195551, 218072, 240693, 263343, 285989, 308563, 331033, 353350, 375494, 397447, 419210, 440795, 462224, 483532, 504758)
   nStr1 = Array("日", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十")
   nStr2 = Array("初", "十", "廿", "卅", " ")
   MonthName = Array("JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC")
  
   ''''国历节日 *表示放假日
   sFtv = Array( _
        1, 1, 1, "元旦", _
        2, 14, 0, "情人节", 2, 10, 0, "国际气象节", _
        3, 18, 0, "妇女节", 3, 12, 0, "植树节", 3, 15, 0, "消费者权益日", _
        4, 1, 0, "愚人节", _
        5, 1, 1, "劳动节", 5, 4, 0, "青年节", 5, 12, 0, "护士节", 5, 31, 0, "世界无烟日", _
        6, 1, 0, "儿童节", _
        7, 1, 0, "建党节 香港回归纪念", _
        8, 1, 0, "建军节", 8, 8, 0, "中国男子节 父亲节", _
        9, 9, 0, "毛泽东逝世纪念", 9, 10, 0, "教师节", 9, 18, 0, "九·一八事变纪念日", 9, 28, 0, "孔子诞辰", _
        10, 1, 0, "国庆节 国际音乐日", 10, 6, 0, "老人节", 10, 24, 0, "联合国日", _
        11, 12, 0, "孙中山诞辰纪念", _
        12, 1, 0, "世界艾滋病日", 12, 3, 0, "世界残疾人日", 12, 20, 0, "澳门回归纪念", 12, 24, 0, "平安夜", 12, 25, 0, "圣诞节", 12, 26, 0, "毛泽东诞辰纪念")
       
   b = UBound(sFtv) + 1
   ReDim sHolidayInfo(b / 4)
   For i = 0 To (b / 4) - 1
       sHolidayInfo(i).Month = sFtv(i * 4)
       sHolidayInfo(i).Day = sFtv(i * 4 + 1)
       sHolidayInfo(i).Recess = sFtv(i * 4 + 2)
       sHolidayInfo(i).HolidayName = sFtv(i * 4 + 3)
   Next
  
   ''''农历节日 *表示放假日
   lFtv = Array( _
        1, 1, 1, "春节", _
        1, 15, 0, "元宵节", _
        5, 5, 0, "端午节", _
        7, 7, 0, "七夕情人节", _
        7, 15, 0, "中元节 盂兰盆节", _
        8, 15, 0, "中秋节", _
        9, 9, 0, "重阳节", _
        12, 8, 0, "腊八节", _
        12, 24, 0, "小年")
        ''''12, 31, 0, "除夕")  ''''注意除夕需要其它方法进行计算
  
   b = UBound(lFtv) + 1
   ReDim lHolidayInfo(b / 4)
   For i = 0 To (b / 4) - 1
       lHolidayInfo(i).Month = lFtv(i * 4)
       lHolidayInfo(i).Day = lFtv(i * 4 + 1)
       lHolidayInfo(i).Recess = lFtv(i * 4 + 2)
       lHolidayInfo(i).HolidayName = lFtv(i * 4 + 3)
   Next
  
   ''''某月的第几个星期几
   wFtv = Array( _
       5, 2, 1, "国际母亲节", _
       5, 3, 1, "全国助残日", _
       6, 3, 1, "父亲节", _
       9, 3, 3, "国际和平日", _
       9, 4, 1, "国际聋人节", _
       10, 1, 2, "国际住房日", _
       10, 1, 4, "国际减轻自然灾害日", _
       11, 4, 5, "感恩节")
   b = UBound(wFtv) + 1
   ReDim wHolidayInfo(b / 4)
   For i = 0 To (b / 4) - 1
       wHolidayInfo(i).Month = wFtv(i * 4)
       wHolidayInfo(i).WeekAtMonth = wFtv(i * 4 + 1)
       wHolidayInfo(i).WeekDay = wFtv(i * 4 + 2) ''''1 代表星期天
       wHolidayInfo(i).HolidayName = wFtv(i * 4 + 3)
   Next
End Sub

''''/////////////////////////////////////////////////////////////////////////////////////////////////////////////

''''计算农历上的节气
Public Property Get lSolarTerm() As String

    ''''//===== 某年的第n个节气为几日(从0小寒起算)
    ''''function sTerm(y,n) {
    ''''   var offDate = new Date( ( 31556925974.7*(y-1900) + sTermInfo[n]*60000  ) + Date.UTC(1900,0,6,2,5) )
    ''''   return(offDate.getUTCDate())

    ''''//节气
    ''''   tmp1 = sTerm(y, m * 2) - 1
   
    Dim baseDateAndTime As Date
    Dim newDate As Date
    Dim num As Double
    Dim y As Long
    Dim tempStr As String
   
    baseDateAndTime = #1/6/1900 2:05:00 AM#
    y = mvarsYear
    tempStr = ""
   
    Dim i As Long
    For i = 1 To 24
       num = 525948.76 * (y - 1900) + sTermInfo(i - 1)
       newDate = DateAdd("n", num, baseDateAndTime)  ''''按分钟计算,之所以不按秒钟计算,是因为会溢出

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

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