阿杰 发表于 2007-1-28 23:23:05

农历的算法

Private Sub Form_Load()<br/>&nbsp;&nbsp;&nbsp; Dim WeekName(7), MonthAdd(11), NongliData(99), TianGan(9), DiZhi(11), ShuXiang(11), DayName(30), MonName(12)<br/>&nbsp;&nbsp;&nbsp; Dim curTime, curYear, curMonth, curDay, curWeekday<br/>&nbsp;&nbsp;&nbsp; Dim GongliStr, WeekdayStr, NongliStr, NongliDayStr<br/>&nbsp;&nbsp;&nbsp; Dim i, m, n, k, isEnd, bit, TheDate <br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; '获取当前系统时间<br/>&nbsp;&nbsp;&nbsp; curTime = Now()<br/>&nbsp;&nbsp;&nbsp; '星期名<br/>&nbsp;&nbsp;&nbsp; WeekName(0) = " * "<br/>&nbsp;&nbsp;&nbsp; WeekName(1) = "星期日"<br/>&nbsp;&nbsp;&nbsp; WeekName(2) = "星期一"<br/>&nbsp;&nbsp;&nbsp; WeekName(3) = "星期二"<br/>&nbsp;&nbsp;&nbsp; WeekName(4) = "星期三"<br/>&nbsp;&nbsp;&nbsp; WeekName(5) = "星期四"<br/>&nbsp;&nbsp;&nbsp; WeekName(6) = "星期五"<br/>&nbsp;&nbsp;&nbsp; WeekName(7) = "星期六"<br/>&nbsp;&nbsp;&nbsp; '天干名称<br/>&nbsp;&nbsp;&nbsp; TianGan(0) = "甲"<br/>&nbsp;&nbsp;&nbsp; TianGan(1) = "乙"<br/>&nbsp;&nbsp;&nbsp; TianGan(2) = "丙"<br/>&nbsp;&nbsp;&nbsp; TianGan(3) = "丁"<br/>&nbsp;&nbsp;&nbsp; TianGan(4) = "戊"<br/>&nbsp;&nbsp;&nbsp; TianGan(5) = "己"<br/>&nbsp;&nbsp;&nbsp; TianGan(6) = "庚"<br/>&nbsp;&nbsp;&nbsp; TianGan(7) = "辛"<br/>&nbsp;&nbsp;&nbsp; TianGan(8) = "壬"<br/>&nbsp;&nbsp;&nbsp; TianGan(9) = "癸"<br/>&nbsp;&nbsp;&nbsp; '地支名称<br/>&nbsp;&nbsp;&nbsp; DiZhi(0) = "子"<br/>&nbsp;&nbsp;&nbsp; DiZhi(1) = "丑"<br/>&nbsp;&nbsp;&nbsp; DiZhi(2) = "寅"<br/>&nbsp;&nbsp;&nbsp; DiZhi(3) = "卯"<br/>&nbsp;&nbsp;&nbsp; DiZhi(4) = "辰"<br/>&nbsp;&nbsp;&nbsp; DiZhi(5) = "巳"<br/>&nbsp;&nbsp;&nbsp; DiZhi(6) = "午"<br/>&nbsp;&nbsp;&nbsp; DiZhi(7) = "未"<br/>&nbsp;&nbsp;&nbsp; DiZhi(8) = "申"<br/>&nbsp;&nbsp;&nbsp; DiZhi(9) = "酉"<br/>&nbsp;&nbsp;&nbsp; DiZhi(10) = "戌"<br/>&nbsp;&nbsp;&nbsp; DiZhi(11) = "亥"<br/>&nbsp;&nbsp;&nbsp; '属相名称<br/>&nbsp;&nbsp;&nbsp; ShuXiang(0) = "鼠"<br/>&nbsp;&nbsp;&nbsp; ShuXiang(1) = "牛"<br/>&nbsp;&nbsp;&nbsp; ShuXiang(2) = "虎"<br/>&nbsp;&nbsp;&nbsp; ShuXiang(3) = "兔"<br/>&nbsp;&nbsp;&nbsp; ShuXiang(4) = "龙"<br/>&nbsp;&nbsp;&nbsp; ShuXiang(5) = "蛇"<br/>&nbsp;&nbsp;&nbsp; ShuXiang(6) = "马"<br/>&nbsp;&nbsp;&nbsp; ShuXiang(7) = "羊"<br/>&nbsp;&nbsp;&nbsp; ShuXiang(8) = "猴"<br/>&nbsp;&nbsp;&nbsp; ShuXiang(9) = "鸡"<br/>&nbsp;&nbsp;&nbsp; ShuXiang(10) = "狗"<br/>&nbsp;&nbsp;&nbsp; ShuXiang(11) = "猪"<br/>&nbsp;&nbsp;&nbsp; '农历日期名<br/>&nbsp;&nbsp;&nbsp; DayName(0) = "*"<br/>&nbsp;&nbsp;&nbsp; DayName(1) = "初一"<br/>&nbsp;&nbsp;&nbsp; DayName(2) = "初二"<br/>&nbsp;&nbsp;&nbsp; DayName(3) = "初三"<br/>&nbsp;&nbsp;&nbsp; DayName(4) = "初四"<br/>&nbsp;&nbsp;&nbsp; DayName(5) = "初五"<br/>&nbsp;&nbsp;&nbsp; DayName(6) = "初六"<br/>&nbsp;&nbsp;&nbsp; DayName(7) = "初七"<br/>&nbsp;&nbsp;&nbsp; DayName(8) = "初八"<br/>&nbsp;&nbsp;&nbsp; DayName(9) = "初九"<br/>&nbsp;&nbsp;&nbsp; DayName(10) = "初十"<br/>&nbsp;&nbsp;&nbsp; DayName(11) = "十?quot;"<br/>&nbsp;&nbsp;&nbsp; DayName(12) = "十二"<br/>&nbsp;&nbsp;&nbsp; DayName(13) = "十三"<br/>&nbsp;&nbsp;&nbsp; DayName(14) = "十四"<br/>&nbsp;&nbsp;&nbsp; DayName(15) = "十五"<br/>&nbsp;&nbsp;&nbsp; DayName(16) = "十六"<br/>&nbsp;&nbsp;&nbsp; DayName(17) = "十七"<br/>&nbsp;&nbsp;&nbsp; DayName(18) = "十八"<br/>&nbsp;&nbsp;&nbsp; DayName(19) = "十九"<br/>&nbsp;&nbsp;&nbsp; DayName(20) = "二十"<br/>&nbsp;&nbsp;&nbsp; DayName(21) = "廿一"<br/>&nbsp;&nbsp;&nbsp; DayName(22) = "廿二"<br/>&nbsp;&nbsp;&nbsp; DayName(23) = "廿三"<br/>&nbsp;&nbsp;&nbsp; DayName(24) = "廿四"<br/>&nbsp;&nbsp;&nbsp; DayName(25) = "廿五"<br/>&nbsp;&nbsp;&nbsp; DayName(26) = "廿六"<br/>&nbsp;&nbsp;&nbsp; DayName(27) = "廿七"<br/>&nbsp;&nbsp;&nbsp; DayName(28) = "廿八"<br/>&nbsp;&nbsp;&nbsp; DayName(29) = "廿九"<br/>&nbsp;&nbsp;&nbsp; DayName(30) = "三十"<br/>&nbsp;&nbsp;&nbsp; '农历月份名<br/>&nbsp;&nbsp;&nbsp; MonName(0) = "*"<br/>&nbsp;&nbsp;&nbsp; MonName(1) = "正"<br/>&nbsp;&nbsp;&nbsp; MonName(2) = "二"<br/>&nbsp;&nbsp;&nbsp; MonName(3) = "三"<br/>&nbsp;&nbsp;&nbsp; MonName(4) = "四"<br/>&nbsp;&nbsp;&nbsp; MonName(5) = "五"<br/>&nbsp;&nbsp;&nbsp; MonName(6) = "六"<br/>&nbsp;&nbsp;&nbsp; MonName(7) = "七"<br/>&nbsp;&nbsp;&nbsp; MonName(8) = "八"<br/>&nbsp;&nbsp;&nbsp; MonName(9) = "九"<br/>&nbsp;&nbsp;&nbsp; MonName(10) = "十"<br/>&nbsp;&nbsp;&nbsp; MonName(11) = "十一"<br/>&nbsp;&nbsp;&nbsp; MonName(12) = "腊"<br/>&nbsp;&nbsp;&nbsp; '公历每月前面的天数<br/>&nbsp;&nbsp;&nbsp; MonthAdd(0) = 0<br/>&nbsp;&nbsp;&nbsp; MonthAdd(1) = 31<br/>&nbsp;&nbsp;&nbsp; MonthAdd(2) = 59<br/>&nbsp;&nbsp;&nbsp; MonthAdd(3) = 90<br/>&nbsp;&nbsp;&nbsp; MonthAdd(4) = 120<br/>&nbsp;&nbsp;&nbsp; MonthAdd(5) = 151<br/>&nbsp;&nbsp;&nbsp; MonthAdd(6) = 181<br/>&nbsp;&nbsp;&nbsp; MonthAdd(7) = 212<br/>&nbsp;&nbsp;&nbsp; MonthAdd(8) = 243<br/>&nbsp;&nbsp;&nbsp; MonthAdd(9) = 273<br/>&nbsp;&nbsp;&nbsp; MonthAdd(10) = 304<br/>&nbsp;&nbsp;&nbsp; MonthAdd(11) = 334<br/>&nbsp;&nbsp;&nbsp; '农历数据<br/>&nbsp;&nbsp;&nbsp; NongliData(0) = 2635<br/>&nbsp;&nbsp;&nbsp; NongliData(1) = 333387<br/>&nbsp;&nbsp;&nbsp; NongliData(2) = 1701<br/>&nbsp;&nbsp;&nbsp; NongliData(3) = 1748<br/>&nbsp;&nbsp;&nbsp; NongliData(4) = 267701<br/>&nbsp;&nbsp;&nbsp; NongliData(5) = 694<br/>&nbsp;&nbsp;&nbsp; NongliData(6) = 2391<br/>&nbsp;&nbsp;&nbsp; NongliData(7) = 133423<br/>&nbsp;&nbsp;&nbsp; NongliData(8) = 1175<br/>&nbsp;&nbsp;&nbsp; NongliData(9) = 396438<br/>&nbsp;&nbsp;&nbsp; NongliData(10) = 3402<br/>&nbsp;&nbsp;&nbsp; NongliData(11) = 3749<br/>&nbsp;&nbsp;&nbsp; NongliData(12) = 331177<br/>&nbsp;&nbsp;&nbsp; NongliData(13) = 1453<br/>&nbsp;&nbsp;&nbsp; NongliData(14) = 694<br/>&nbsp;&nbsp;&nbsp; NongliData(15) = 201326<br/>&nbsp;&nbsp;&nbsp; NongliData(16) = 2350<br/>&nbsp;&nbsp;&nbsp; NongliData(17) = 465197<br/>&nbsp;&nbsp;&nbsp; NongliData(18) = 3221<br/>&nbsp;&nbsp;&nbsp; NongliData(19) = 3402<br/>&nbsp;&nbsp;&nbsp; NongliData(20) = 400202<br/>&nbsp;&nbsp;&nbsp; NongliData(21) = 2901<br/>&nbsp;&nbsp;&nbsp; NongliData(22) = 1386<br/>&nbsp;&nbsp;&nbsp; NongliData(23) = 267611<br/>&nbsp;&nbsp;&nbsp; NongliData(24) = 605<br/>&nbsp;&nbsp;&nbsp; NongliData(25) = 2349<br/>&nbsp;&nbsp;&nbsp; NongliData(26) = 137515<br/>&nbsp;&nbsp;&nbsp; NongliData(27) = 2709<br/>&nbsp;&nbsp;&nbsp; NongliData(28) = 464533<br/>&nbsp;&nbsp;&nbsp; NongliData(29) = 1738<br/>&nbsp;&nbsp;&nbsp; NongliData(30) = 2901<br/>&nbsp;&nbsp;&nbsp; NongliData(31) = 330421<br/>&nbsp;&nbsp;&nbsp; NongliData(32) = 1242<br/>&nbsp;&nbsp;&nbsp; NongliData(33) = 2651<br/>&nbsp;&nbsp;&nbsp; NongliData(34) = 199255<br/>&nbsp;&nbsp;&nbsp; NongliData(35) = 1323<br/>&nbsp;&nbsp;&nbsp; NongliData(36) = 529706<br/>&nbsp;&nbsp;&nbsp; NongliData(37) = 3733<br/>&nbsp;&nbsp;&nbsp; NongliData(38) = 1706<br/>&nbsp;&nbsp;&nbsp; NongliData(39) = 398762<br/>&nbsp;&nbsp;&nbsp; NongliData(40) = 2741<br/>&nbsp;&nbsp;&nbsp; NongliData(41) = 1206<br/>&nbsp;&nbsp;&nbsp; NongliData(42) = 267438<br/>&nbsp;&nbsp;&nbsp; NongliData(43) = 2647<br/>&nbsp;&nbsp;&nbsp; NongliData(44) = 1318<br/>&nbsp;&nbsp;&nbsp; NongliData(45) = 204070<br/>&nbsp;&nbsp;&nbsp; NongliData(46) = 3477<br/>&nbsp;&nbsp;&nbsp; NongliData(47) = 461653<br/>&nbsp;&nbsp;&nbsp; NongliData(48) = 1386<br/>&nbsp;&nbsp;&nbsp; NongliData(49) = 2413<br/>&nbsp;&nbsp;&nbsp; NongliData(50) = 330077<br/>&nbsp;&nbsp;&nbsp; NongliData(51) = 1197<br/>&nbsp;&nbsp;&nbsp; NongliData(52) = 2637<br/>&nbsp;&nbsp;&nbsp; NongliData(53) = 268877<br/>&nbsp;&nbsp;&nbsp; NongliData(54) = 3365<br/>&nbsp;&nbsp;&nbsp; NongliData(55) = 531109<br/>&nbsp;&nbsp;&nbsp; NongliData(56) = 2900<br/>&nbsp;&nbsp;&nbsp; NongliData(57) = 2922<br/>&nbsp;&nbsp;&nbsp; NongliData(58) = 398042<br/>&nbsp;&nbsp;&nbsp; NongliData(59) = 2395<br/>&nbsp;&nbsp;&nbsp; NongliData(60) = 1179<br/>&nbsp;&nbsp;&nbsp; NongliData(61) = 267415<br/>&nbsp;&nbsp;&nbsp; NongliData(62) = 2635<br/>&nbsp;&nbsp;&nbsp; NongliData(63) = 661067<br/>&nbsp;&nbsp;&nbsp; NongliData(64) = 1701<br/>&nbsp;&nbsp;&nbsp; NongliData(65) = 1748<br/>&nbsp;&nbsp;&nbsp; NongliData(66) = 398772<br/>&nbsp;&nbsp;&nbsp; NongliData(67) = 2742<br/>&nbsp;&nbsp;&nbsp; NongliData(68) = 2391<br/>&nbsp;&nbsp;&nbsp; NongliData(69) = 330031<br/>&nbsp;&nbsp;&nbsp; NongliData(70) = 1175<br/>&nbsp;&nbsp;&nbsp; NongliData(71) = 1611<br/>&nbsp;&nbsp;&nbsp; NongliData(72) = 200010<br/>&nbsp;&nbsp;&nbsp; NongliData(73) = 3749<br/>&nbsp;&nbsp;&nbsp; NongliData(74) = 527717<br/>&nbsp;&nbsp;&nbsp; NongliData(75) = 1452<br/>&nbsp;&nbsp;&nbsp; NongliData(76) = 2742<br/>&nbsp;&nbsp;&nbsp; NongliData(77) = 332397<br/>&nbsp;&nbsp;&nbsp; NongliData(78) = 2350<br/>&nbsp;&nbsp;&nbsp; NongliData(79) = 3222<br/>&nbsp;&nbsp;&nbsp; NongliData(80) = 268949<br/>&nbsp;&nbsp;&nbsp; NongliData(81) = 3402<br/>&nbsp;&nbsp;&nbsp; NongliData(82) = 3493<br/>&nbsp;&nbsp;&nbsp; NongliData(83) = 133973<br/>&nbsp;&nbsp;&nbsp; NongliData(84) = 1386<br/>&nbsp;&nbsp;&nbsp; NongliData(85) = 464219<br/>&nbsp;&nbsp;&nbsp; NongliData(86) = 605<br/>&nbsp;&nbsp;&nbsp; NongliData(87) = 2349<br/>&nbsp;&nbsp;&nbsp; NongliData(88) = 334123<br/>&nbsp;&nbsp;&nbsp; NongliData(89) = 2709<br/>&nbsp;&nbsp;&nbsp; NongliData(90) = 2890<br/>&nbsp;&nbsp;&nbsp; NongliData(91) = 267946<br/>&nbsp;&nbsp;&nbsp; NongliData(92) = 2773<br/>&nbsp;&nbsp;&nbsp; NongliData(93) = 592565<br/>&nbsp;&nbsp;&nbsp; NongliData(94) = 1210<br/>&nbsp;&nbsp;&nbsp; NongliData(95) = 2651<br/>&nbsp;&nbsp;&nbsp; NongliData(96) = 395863<br/>&nbsp;&nbsp;&nbsp; NongliData(97) = 1323<br/>&nbsp;&nbsp;&nbsp; NongliData(98) = 2707<br/>&nbsp;&nbsp;&nbsp; NongliData(99) = 265877<br/>&nbsp;&nbsp;&nbsp; '生成当前公历年、月、日 ==&gt; GongliStr<br/>&nbsp;&nbsp;&nbsp; curYear = Year(curTime)<br/>&nbsp;&nbsp;&nbsp; curMonth = Month(curTime)<br/>&nbsp;&nbsp;&nbsp; curDay = Day(curTime)<br/>&nbsp;&nbsp;&nbsp; GongliStr = curYear &amp; "年"<br/>&nbsp;&nbsp;&nbsp; If (curMonth &lt; 10) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GongliStr = GongliStr &amp; "0" &amp; curMonth &amp; "月"<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GongliStr = GongliStr &amp; curMonth &amp; "月"<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; If (curDay &lt; 10) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GongliStr = GongliStr &amp; "0" &amp; curDay &amp; "日"<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GongliStr = GongliStr &amp; curDay &amp; "日"<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; '生成当前公历星期 ==&gt; WeekdayStr<br/>&nbsp;&nbsp;&nbsp; curWeekday = Weekday(curTime)<br/>&nbsp;&nbsp;&nbsp; WeekdayStr = WeekName(curWeekday)<br/>&nbsp;&nbsp;&nbsp; '计算到初始时间1921年2月8日的天数:1921-2-8(正月初一)<br/>&nbsp;&nbsp;&nbsp; TheDate = (curYear - 1921) * 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38<br/>&nbsp;&nbsp;&nbsp; If ((curYear Mod 4) = 0 And curMonth &gt; 2) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TheDate = TheDate + 1<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; '计算农历天干、地支、月、日<br/>&nbsp;&nbsp;&nbsp; isEnd = 0<br/>&nbsp;&nbsp;&nbsp; m = 0<br/>&nbsp;&nbsp;&nbsp; Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (NongliData(m) &lt; 4095) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k = 11<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; k = 12<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n = k<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (n &lt; 0) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; '获取NongliData(m)的第n个二进制位的值<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bit = NongliData(m)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For i = 1 To n Step 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bit = Int(bit / 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bit = bit Mod 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (TheDate &lt;= 29 + bit) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isEnd = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TheDate = TheDate - 29 - bit<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; n = n - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Loop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (isEnd = 1) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m = m + 1<br/>&nbsp;&nbsp;&nbsp; Loop<br/>&nbsp;&nbsp;&nbsp; curYear = 1921 + m<br/>&nbsp;&nbsp;&nbsp; curMonth = k - n + 1<br/>&nbsp;&nbsp;&nbsp; curDay = TheDate<br/>&nbsp;&nbsp;&nbsp; If (k = 12) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If (curMonth = (Int(NongliData(m) / 65536) + 1)) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; curMonth = 1 - curMonth<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ElseIf (curMonth &gt; (Int(NongliData(m) / 65536) + 1)) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; curMonth = curMonth - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; '生成农历天干、地支、属相 ==&gt; NongliStr<br/>&nbsp;&nbsp;&nbsp; NongliStr = "农历" &amp; TianGan(((curYear - 4) Mod 60) Mod 10) &amp; DiZhi(((curYear - 4) Mod 60) Mod 12) &amp; "年"<br/>&nbsp;&nbsp;&nbsp; NongliStr = NongliStr &amp; "(" &amp; ShuXiang(((curYear - 4) Mod 60) Mod 12) &amp; ")"<br/>&nbsp;&nbsp;&nbsp; '生成农历月、日 ==&gt; NongliDayStr<br/>&nbsp;&nbsp;&nbsp; If (curMonth &lt; 1) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NongliDayStr = "闰" &amp; MonName( -1 * curMonth)<br/>&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NongliDayStr = MonName(curMonth)<br/>&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; NongliDayStr = NongliDayStr &amp; "月"<br/>&nbsp;&nbsp;&nbsp; NongliDayStr = NongliDayStr &amp; DayName(curDay)<br/>&nbsp;&nbsp;&nbsp; MsgBox NongliStr &amp; NongliDayStr<br/>&nbsp;&nbsp;&nbsp; <br/>End Sub

everyone 发表于 2007-1-30 17:28:52

学VB有用吗?敢情问一下/

马大哈 发表于 2007-1-31 21:15:30

<p>那么学什么才有用呢?</p><p>那么什么才叫"有用"呢?</p><p>这个问题虽然早已经过时了</p><p>如果愿意讨论,也欢迎!</p>
页: [1]
查看完整版本: 农历的算法