sp; 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) ''''按分钟计算,之所以不按秒钟计算,是因为会溢出 If Abs(DateDiff("d", newDate, mvarDate)) = 0 Then tempStr = SolarTerm(i - 1) Exit For End If Next lSolarTerm = tempStr End Property ''''计算按第几周星期几计算的节日 Public Property Get wHoliday() As String Dim w As Long Dim i As Long Dim b As Long Dim FirstDay As Date Dim tempStr As String b = UBound(wHolidayInfo) For i = 0 To b If wHolidayInfo(i).Month = mvarsMonth Then ''''当月份相当时 w = WeekDay(mvarDate) If wHolidayInfo(i).WeekDay = w Then ''''仅当星期几也相等时 FirstDay = mvarsMonth & "/" & 1 & "/" & mvarsYear ''''取当月第一天 If (DateDiff("ww", FirstDay, mvarDate) = wHolidayInfo(i).WeekAtMonth) Then tempStr = wHolidayInfo(i).HolidayName End If End If End If Next wHoliday = tempStr End Property Public Property Get lHoliday() As String Dim i As Long Dim b As Long Dim tempStr As String Dim oy As Long &上一页 [1] [2] [3] [4] [5] [6] 下一页 没有相关教程
|