ASP 阳历转阴历

此代码为ASP代码,可以把当前日期或者指定阳历日期(必须为1921-2-8以后)转换为对应阴历月和日,此代码不是原创,是经过修改《纯ASP代码之公历转农历实现(含属相)》而得到的,感谢原作者提供代码分享 

注:阴历没有显示年,这个简单,判断一下阴历的月大于阳历的月的话就是阳历年份的前一年,不然就和阳历同年

1.建立一个asp页面,命名为yy.asp,保存阳历转阴历函数方便调用,完整代码如下: 

<% 
'----------------------------------------------------------阳历转阴历 
Class ChinaDay 

Dim     MonthAdd(11), NongliData(99) 
Dim arrDayName(30), arrMonName(12) 
Dim curTime, curYear, curMonth, curDay 
Dim i, m, n, k, isEnd, bit, TheDate 

'初始化数据 
Sub Class_Initialize() 

'农历日期名 
arrDayName(0) = "*" 
arrDayName(1) = "1" 
arrDayName(2) = "2" 
arrDayName(3) = "3" 
arrDayName(4) = "4" 
arrDayName(5) = "5" 
arrDayName(6) = "6" 
arrDayName(7) = "7" 
arrDayName(8) = "8" 
arrDayName(9) = "9" 
arrDayName(10) = "10" 
arrDayName(11) = "11" 
arrDayName(12) = "12" 
arrDayName(13) = "13" 
arrDayName(14) = "14" 
arrDayName(15) = "15" 
arrDayName(16) = "16" 
arrDayName(17) = "17" 
arrDayName(18) = "18" 
arrDayName(19) = "19" 
arrDayName(20) = "20" 
arrDayName(21) = "21" 
arrDayName(22) = "22" 
arrDayName(23) = "23" 
arrDayName(24) = "24" 
arrDayName(25) = "25" 
arrDayName(26) = "26" 
arrDayName(27) = "27" 
arrDayName(28) = "28" 
arrDayName(29) = "29" 
arrDayName(30) = "30" 

'农历月份名 
arrMonName(0) = "*" 
arrMonName(1) = "1" 
arrMonName(2) = "2" 
arrMonName(3) = "3" 
arrMonName(4) = "4" 
arrMonName(5) = "5" 
arrMonName(6) = "6" 
arrMonName(7) = "7" 
arrMonName(8) = "8" 
arrMonName(9) = "9" 
arrMonName(10) = "10" 
arrMonName(11) = "11" 
arrMonName(12) = "12" 

'--------------------------------------------------------- 

'公历每月前面的天数 
MonthAdd(0) = 0 
MonthAdd(1) = 31 
MonthAdd(2) = 59 
MonthAdd(3) = 90 
MonthAdd(4) = 120 
MonthAdd(5) = 151 
MonthAdd(6) = 181 
MonthAdd(7) = 212 
MonthAdd(8) = 243 
MonthAdd(9) = 273 
MonthAdd(10) = 304 
MonthAdd(11) = 334 

'农历数据 
NongliData(0) = 2635 
NongliData(1) = 333387 
NongliData(2) = 1701 
NongliData(3) = 1748 
NongliData(4) = 267701 
NongliData(5) = 694 
NongliData(6) = 2391 
NongliData(7) = 133423 
NongliData(8) = 1175 
NongliData(9) = 396438 
NongliData(10) = 3402 
NongliData(11) = 3749 
NongliData(12) = 331177 
NongliData(13) = 1453 
NongliData(14) = 694 
NongliData(15) = 201326 
NongliData(16) = 2350 
NongliData(17) = 465197 
NongliData(18) = 3221 
NongliData(19) = 3402 
NongliData(20) = 400202 
NongliData(21) = 2901 
NongliData(22) = 1386 
NongliData(23) = 267611 
NongliData(24) = 605 
NongliData(25) = 2349 
NongliData(26) = 137515 
NongliData(27) = 2709 
NongliData(28) = 464533 
NongliData(29) = 1738 
NongliData(30) = 2901 
NongliData(31) = 330421 
NongliData(32) = 1242 
NongliData(33) = 2651 
NongliData(34) = 199255 
NongliData(35) = 1323 
NongliData(36) = 529706 
NongliData(37) = 3733 
NongliData(38) = 1706 
NongliData(39) = 398762 
NongliData(40) = 2741 
NongliData(41) = 1206 
NongliData(42) = 267438 
NongliData(43) = 2647 
NongliData(44) = 1318 
NongliData(45) = 204070 
NongliData(46) = 3477 
NongliData(47) = 461653 
NongliData(48) = 1386 
NongliData(49) = 2413 
NongliData(50) = 330077 
NongliData(51) = 1197 
NongliData(52) = 2637 
NongliData(53) = 268877 
NongliData(54) = 3365 
NongliData(55) = 531109 
NongliData(56) = 2900 
NongliData(57) = 2922 
NongliData(58) = 398042 
NongliData(59) = 2395 
NongliData(60) = 1179 
NongliData(61) = 267415 
NongliData(62) = 2635 
NongliData(63) = 661067 
NongliData(64) = 1701 
NongliData(65) = 1748 
NongliData(66) = 398772 
NongliData(67) = 2742 
NongliData(68) = 2391 
NongliData(69) = 330031 
NongliData(70) = 1175 
NongliData(71) = 1611 
NongliData(72) = 200010 
NongliData(73) = 3749 
NongliData(74) = 527717 
NongliData(75) = 1452 
NongliData(76) = 2742 
NongliData(77) = 332397 
NongliData(78) = 2350 
NongliData(79) = 3222 
NongliData(80) = 268949 
NongliData(81) = 3402 
NongliData(82) = 3493 
NongliData(83) = 133973 
NongliData(84) = 1386 
NongliData(85) = 464219 
NongliData(86) = 605 
NongliData(87) = 2349 
NongliData(88) = 334123 
NongliData(89) = 2709 
NongliData(90) = 2890 
NongliData(91) = 267946 
NongliData(92) = 2773 
NongliData(93) = 592565 
NongliData(94) = 1210 
NongliData(95) = 2651 
NongliData(96) = 395863 
NongliData(97) = 1323 
NongliData(98) = 2707 
NongliData(99) = 265877 
End Sub 

'############################################################ 
' inDay 输入日期,如果不输入则默认为当前日期 
' sDay 中文格式日期 
' sChinaDay 农历日 
'############################################################ 
Public Function Action(inDay,sDay,sChinaDay) 

'转换要转换的日期 
If inDay="" Or Not IsDate(inDay) Then 
'获取当前系统时间 
curTime = Now() 
Else 
curTime = CDate(inDay) 
End If 

If Datediff("d",curTime,Cdate("1921-2-8"))>0 Then 
Exit Function 
End If 

'生成当前公历年、月、日 ==> sDay 
curYear = Year(curTime) 
curMonth = Month(curTime) 
curDay = Day(curTime) 

sDay = curYear&"年" 
If (curMonth < 10) Then 
sDay = sDay&"0"&curMonth&"月" 
Else 
sDay = sDay&curMonth&"月" 
End If 
If (curDay < 10) Then 
sDay = sDay&"0"&curDay&"日" 
Else 
sDay = sDay&curDay&"日" 
End If 

'计算到初始时间1921年2月8日的天数:1921-2-8(正月初一) 
TheDate = (curYear - 1921) * 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38 
If ((curYear Mod 4) = 0 AND curMonth > 2) Then 
TheDate = TheDate + 1 
End If 

'计算农历天干、地支、月、日 
isEnd = 0 
m = 0 
'------------------------------------ 
Do 
If (NongliData(m) < 4095) Then 
k = 11 
Else 
k = 12 
End if 

n = k 
'------------------------------------ 
Do 
If (n < 0) Then 
Exit Do 
End If 

'获取NongliData(m)的第n个二进制位的值 
bit = NongliData(m) 
For i = 1 To n Step 1 
bit = Int(bit / 2) 
Next 
bit = bit Mod 2 

If (TheDate <= 29 + bit) Then 
isEnd = 1 
Exit Do 
End If 

TheDate = TheDate - 29 - bit 

n = n - 1 
Loop 
'------------------------------------ 
If (isEnd = 1) Then 
Exit Do 
End If 

m = m + 1 
Loop 
'------------------------------------ 

curYear = 1921 + m 
curMonth = k - n + 1 
curDay = TheDate 

If (k = 12) Then 
If (curMonth = (Int(NongliData(m) / 65536) + 1)) Then 
curMonth = 1 - curMonth 
ElseIf (curMonth > (Int(NongliData(m) / 65536) + 1)) Then 
curMonth = curMonth - 1 
End if 
End If 

'生成农历月、日 ==> NongliDayStr 
If (curMonth < 1) Then 
sChinaDay = "闰"&arrMonName(-1 * curMonth) 
Else 
sChinaDay = arrMonName(curMonth) 
End If 
sChinaDay = sChinaDay&"-" 

sChinaDay = sChinaDay & arrDayName(curDay) 
End Function 
End Class 
'----------------------------------------------------------阳历转阴历结束 
%> 

2.先用当前日期调用 文件名dq.asp ,完整代码如下: 

<!--#include file="yy.asp" --> 
<html> 
当前日期为 <%=date()%> 
<br> 
<% 
Set zhChinaDay = New ChinaDay 
Call zhChinaDay.Action(ass,sDay,sChinaDay) 
Set zhChinaDay = Nothing 
%> 
对应农历为 <%=sChinaDay%> 
</html> 

3.指定日期转换 zd.asp ,完整代码如下: 

<!--#include file="yy.asp" --> 
<% 
new_date = request.Form("now_date") 
Set zhChinaDay = New ChinaDay 
Call zhChinaDay.Action(new_date,sDay,sChinaDay) 
Set zhChinaDay = Nothing 
%> 
<html> 
<body> 
<% 
if (new_date = "") then 
%> 
当前日期为 <%=date%>,对应阴历为<%=sChinaDay%> 
<%else%> 
你输入的日期为 <%=new_date%>,对应阴历为<%=sChinaDay%> 
<% end if %> 
<form id="form1" name="form1" method="post" action=""> 
输入要转换的日期: 
     <input name="now_date" type="text" id="new_date" /> 
     <input type="submit" name="Submit" value="提交" /> 
格式为"1999-9-9" 
</form> 
</body> 
</html> 

 

<% 
Function Nongli() 
Dim WeekName(7), MonthAdd(11), NongliData(99), TianGan(9), DiZhi(11), ShuXiang(11), DayName(30), MonName(12) 
Dim curTime, curYear, curMonth, curDay, curWeekday 
Dim GongliStr, WeekdayStr, NongliStr, NongliDayStr 
Dim i, m, n, k, isEnd, bit, TheDate 
'获取当前系统时间 
curTime = Date 
'星期名 
WeekName(0) = " * " 
WeekName(1) = "星期日" 
WeekName(2) = "星期一" 
WeekName(3) = "星期二" 
WeekName(4) = "星期三" 
WeekName(5) = "星期四" 
WeekName(6) = "星期五" 
WeekName(7) = "星期六" 

'天干名称 
TianGan(0) = "甲" 
TianGan(1) = "乙" 
TianGan(2) = "丙" 
TianGan(3) = "丁" 
TianGan(4) = "戊" 
TianGan(5) = "己" 
TianGan(6) = "庚" 
TianGan(7) = "辛" 
TianGan(8) = "壬" 
TianGan(9) = "癸" 

'地支名称 
DiZhi(0) = "子" 
DiZhi(1) = "丑" 
DiZhi(2) = "寅" 
DiZhi(3) = "卯" 
DiZhi(4) = "辰" 
DiZhi(5) = "巳" 
DiZhi(6) = "午" 
DiZhi(7) = "未" 
DiZhi(8) = "申" 
DiZhi(9) = "酉" 
DiZhi(10) = "戌" 
DiZhi(11) = "亥" 

'属相名称 
ShuXiang(0) = "鼠" 
ShuXiang(1) = "牛" 
ShuXiang(2) = "虎" 
ShuXiang(3) = "兔" 
ShuXiang(4) = "龙" 
ShuXiang(5) = "蛇" 
ShuXiang(6) = "马" 
ShuXiang(7) = "羊" 
ShuXiang(8) = "猴" 
ShuXiang(9) = "鸡" 
ShuXiang(10) = "狗" 
ShuXiang(11) = "猪" 

'农历日期名 
DayName(0) = "*" 
DayName(1) = "初一" 
DayName(2) = "初二" 
DayName(3) = "初三" 
DayName(4) = "初四" 
DayName(5) = "初五" 
DayName(6) = "初六" 
DayName(7) = "初七" 
DayName(8) = "初八" 
DayName(9) = "初九" 
DayName(10) = "初十" 
DayName(11) = "十一" 
DayName(12) = "十二" 
DayName(13) = "十三" 
DayName(14) = "十四" 
DayName(15) = "十五" 
DayName(16) = "十六" 
DayName(17) = "十七" 
DayName(18) = "十八" 
DayName(19) = "十九" 
DayName(20) = "二十" 
DayName(21) = "廿一" 
DayName(22) = "廿二" 
DayName(23) = "廿三" 
DayName(24) = "廿四" 
DayName(25) = "廿五" 
DayName(26) = "廿六" 
DayName(27) = "廿七" 
DayName(28) = "廿八" 
DayName(29) = "廿九" 
DayName(30) = "三十" 

'农历月份名 
MonName(0) = "*" 
MonName(1) = "正" 
MonName(2) = "二" 
MonName(3) = "三" 
MonName(4) = "四" 
MonName(5) = "五" 
MonName(6) = "六" 
MonName(7) = "七" 
MonName(8) = "八" 
MonName(9) = "九" 
MonName(10) = "十" 
MonName(11) = "十一" 
MonName(12) = "腊" 

'公历每月前面的天数 
MonthAdd(0) = 0 
MonthAdd(1) = 31 
MonthAdd(2) = 59 
MonthAdd(3) = 90 
MonthAdd(4) = 120 
MonthAdd(5) = 151 
MonthAdd(6) = 181 
MonthAdd(7) = 212 
MonthAdd(8) = 243 
MonthAdd(9) = 273 
MonthAdd(10) = 304 
MonthAdd(11) = 334 
'农历数据 
NongliData(0) = 2635 
NongliData(1) = 333387 
NongliData(2) = 1701 
NongliData(3) = 1748 
NongliData(4) = 267701 
NongliData(5) = 694 
NongliData(6) = 2391 
NongliData(7) = 133423 
NongliData(8) = 1175 
NongliData(9) = 396438 
NongliData(10) = 3402 
NongliData(11) = 3749 
NongliData(12) = 331177 
NongliData(13) = 1453 
NongliData(14) = 694 
NongliData(15) = 201326 
NongliData(16) = 2350 
NongliData(17) = 465197 
NongliData(18) = 3221 
NongliData(19) = 3402 
NongliData(20) = 400202 
NongliData(21) = 2901 
NongliData(22) = 1386 
NongliData(23) = 267611 
NongliData(24) = 605 
NongliData(25) = 2349 
NongliData(26) = 137515 
NongliData(27) = 2709 
NongliData(28) = 464533 
NongliData(29) = 1738 
NongliData(30) = 2901 
NongliData(31) = 330421 
NongliData(32) = 1242 
NongliData(33) = 2651 
NongliData(34) = 199255 
NongliData(35) = 1323 
NongliData(36) = 529706 
NongliData(37) = 3733 
NongliData(38) = 1706 
NongliData(39) = 398762 
NongliData(40) = 2741 
NongliData(41) = 1206 
NongliData(42) = 267438 
NongliData(43) = 2647 
NongliData(44) = 1318 
NongliData(45) = 204070 
NongliData(46) = 3477 
NongliData(47) = 461653 
NongliData(48) = 1386 
NongliData(49) = 2413 
NongliData(50) = 330077 
NongliData(51) = 1197 
NongliData(52) = 2637 
NongliData(53) = 268877 
NongliData(54) = 3365 
NongliData(55) = 531109 
NongliData(56) = 2900 
NongliData(57) = 2922 
NongliData(58) = 398042 
NongliData(59) = 2395 
NongliData(60) = 1179 
NongliData(61) = 267415 
NongliData(62) = 2635 
NongliData(63) = 661067 
NongliData(64) = 1701 
NongliData(65) = 1748 
NongliData(66) = 398772 
NongliData(67) = 2742 
NongliData(68) = 2391 
NongliData(69) = 330031 
NongliData(70) = 1175 
NongliData(71) = 1611 
NongliData(72) = 200010 
NongliData(73) = 3749 
NongliData(74) = 527717 
NongliData(75) = 1452 
NongliData(76) = 2742 
NongliData(77) = 332397 
NongliData(78) = 2350 
NongliData(79) = 3222 
NongliData(80) = 268949 
NongliData(81) = 3402 
NongliData(82) = 3493 
NongliData(83) = 133973 
NongliData(84) = 1386 
NongliData(85) = 464219 
NongliData(86) = 605 
NongliData(87) = 2349 
NongliData(88) = 334123 
NongliData(89) = 2709 
NongliData(90) = 2890 
NongliData(91) = 267946 
NongliData(92) = 2773 
NongliData(93) = 592565 
NongliData(94) = 1210 
NongliData(95) = 2651 
NongliData(96) = 395863 
NongliData(97) = 1323 
NongliData(98) = 2707 
NongliData(99) = 265877 
'生成当前公历年、月、日 ==> GongliStr 
curYear = Year(curTime) 
curMonth = Month(curTime) 
curDay = Day(curTime) 

GongliStr = curYear & "年" 
If (curMonth < 10) Then 
    GongliStr = GongliStr & "0" & curMonth & "月" 
Else 
    GongliStr = GongliStr & curMonth & "月" 
End If 
If (curDay < 10) Then 
    GongliStr = GongliStr & "0" & curDay & "日" 
Else 
    GongliStr = GongliStr & curDay & "日" 
End If 

'生成当前公历星期 ==> WeekdayStr 
curWeekday = Weekday(curTime) 
WeekdayStr = WeekName(curWeekday) 

'计算到初始时间1921年2月8日的天数:1921-2-8(正月初一) 
TheDate = (curYear - 1921) * 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38 
If ((curYear Mod 4) = 0 And curMonth > 2) Then 
    TheDate = TheDate + 1 
End If 

'计算农历天干、地支、月、日 
isEnd = 0 
m = 0 

Do 
    If (NongliData(m) < 4095) Then 
        k = 11 
    Else 
        k = 12 
    End If 

    n = k 
    Do 
        If (n < 0) Then 
            Exit Do 
        End If 

    '获取NongliData(m)的第n个二进制位的值 
    bit = NongliData(m) 
    For q = 1 To n Step 1 
        bit = Int(bit / 2) 
    Next 
    bit = bit Mod 2 

    If (TheDate <= 29 + bit) Then 
        isEnd = 1 
        Exit Do 
    End If 

    TheDate = TheDate - 29 - bit 

    n = n - 1 
  Loop 

  If (isEnd = 1) Then 
      Exit Do 
  End If 

  m = m + 1 
Loop 

curYear = 1921 + m 
curMonth = k - n + 1 
curDay = TheDate 

If (k = 12) Then 
    If (curMonth = (Int(NongliData(m) / 65536) + 1)) Then 
        curMonth = 1 - curMonth 
    ElseIf (curMonth > (Int(NongliData(m) / 65536) + 1)) Then 
        curMonth = curMonth - 1 
    End If 

End If 

'生成农历天干、地支、属相 ==> NongliStr 
NongliStr = TianGan(((curYear - 4) Mod 60) Mod 10) & DiZhi(((curYear - 4) Mod 60) Mod 12) 
NongliStr = NongliStr & " <font color='#ff9000'> <b>(" & ShuXiang(((curYear - 4) Mod 60) Mod 12) & ") </b> </font>年" 
'生成农历月、日 ==> NongljDayStr 
If (curMonth < 1) Then 
    NongliDayStr = "闰" & MonName(-1 * curMonth) 
Else 
    NongliDayStr = MonName(curMonth) 
End If 
NongliDayStr = NongliDayStr & "月" 
NongliDayStr = NongliDayStr & DayName(curDay) 
NongLi= NongliStr & "  " & NongliDayStr 
end Function 
dim sdate:sdate=Nongli() 
response.Write(sdate) 
%>

<% 
Function Nongli() 
Dim WeekName(7), MonthAdd(11), NongliData(99), TianGan(9), DiZhi(11), ShuXiang(11), DayName(30), MonName(12) 
Dim curTime, curYear, curMonth, curDay, curWeekday 
Dim GongliStr, WeekdayStr, NongliStr, NongliDayStr 
Dim i, m, n, k, isEnd, bit, TheDate 
'获取当前系统时间 
curTime = Date 
'星期名 
WeekName(0) = " * " 
WeekName(1) = "星期日" 
WeekName(2) = "星期一" 
WeekName(3) = "星期二" 
WeekName(4) = "星期三" 
WeekName(5) = "星期四" 
WeekName(6) = "星期五" 
WeekName(7) = "星期六" 

'天干名称 
TianGan(0) = "甲" 
TianGan(1) = "乙" 
TianGan(2) = "丙" 
TianGan(3) = "丁" 
TianGan(4) = "戊" 
TianGan(5) = "己" 
TianGan(6) = "庚" 
TianGan(7) = "辛" 
TianGan(8) = "壬" 
TianGan(9) = "癸" 

'地支名称 
DiZhi(0) = "子" 
DiZhi(1) = "丑" 
DiZhi(2) = "寅" 
DiZhi(3) = "卯" 
DiZhi(4) = "辰" 
DiZhi(5) = "巳" 
DiZhi(6) = "午" 
DiZhi(7) = "未" 
DiZhi(8) = "申" 
DiZhi(9) = "酉" 
DiZhi(10) = "戌" 
DiZhi(11) = "亥" 

'属相名称 
ShuXiang(0) = "鼠" 
ShuXiang(1) = "牛" 
ShuXiang(2) = "虎" 
ShuXiang(3) = "兔" 
ShuXiang(4) = "龙" 
ShuXiang(5) = "蛇" 
ShuXiang(6) = "马" 
ShuXiang(7) = "羊" 
ShuXiang(8) = "猴" 
ShuXiang(9) = "鸡" 
ShuXiang(10) = "狗" 
ShuXiang(11) = "猪" 

'农历日期名 
DayName(0) = "*" 
DayName(1) = "初一" 
DayName(2) = "初二" 
DayName(3) = "初三" 
DayName(4) = "初四" 
DayName(5) = "初五" 
DayName(6) = "初六" 
DayName(7) = "初七" 
DayName(8) = "初八" 
DayName(9) = "初九" 
DayName(10) = "初十" 
DayName(11) = "十一" 
DayName(12) = "十二" 
DayName(13) = "十三" 
DayName(14) = "十四" 
DayName(15) = "十五" 
DayName(16) = "十六" 
DayName(17) = "十七" 
DayName(18) = "十八" 
DayName(19) = "十九" 
DayName(20) = "二十" 
DayName(21) = "廿一" 
DayName(22) = "廿二" 
DayName(23) = "廿三" 
DayName(24) = "廿四" 
DayName(25) = "廿五" 
DayName(26) = "廿六" 
DayName(27) = "廿七" 
DayName(28) = "廿八" 
DayName(29) = "廿九" 
DayName(30) = "三十" 

'农历月份名 
MonName(0) = "*" 
MonName(1) = "正" 
MonName(2) = "二" 
MonName(3) = "三" 
MonName(4) = "四" 
MonName(5) = "五" 
MonName(6) = "六" 
MonName(7) = "七" 
MonName(8) = "八" 
MonName(9) = "九" 
MonName(10) = "十" 
MonName(11) = "十一" 
MonName(12) = "腊" 

'公历每月前面的天数 
MonthAdd(0) = 0 
MonthAdd(1) = 31 
MonthAdd(2) = 59 
MonthAdd(3) = 90 
MonthAdd(4) = 120 
MonthAdd(5) = 151 
MonthAdd(6) = 181 
MonthAdd(7) = 212 
MonthAdd(8) = 243 
MonthAdd(9) = 273 
MonthAdd(10) = 304 
MonthAdd(11) = 334 
'农历数据 
NongliData(0) = 2635 
NongliData(1) = 333387 
NongliData(2) = 1701 
NongliData(3) = 1748 
NongliData(4) = 267701 
NongliData(5) = 694 
NongliData(6) = 2391 
NongliData(7) = 133423 
NongliData(8) = 1175 
NongliData(9) = 396438 
NongliData(10) = 3402 
NongliData(11) = 3749 
NongliData(12) = 331177 
NongliData(13) = 1453 
NongliData(14) = 694 
NongliData(15) = 201326 
NongliData(16) = 2350 
NongliData(17) = 465197 
NongliData(18) = 3221 
NongliData(19) = 3402 
NongliData(20) = 400202 
NongliData(21) = 2901 
NongliData(22) = 1386 
NongliData(23) = 267611 
NongliData(24) = 605 
NongliData(25) = 2349 
NongliData(26) = 137515 
NongliData(27) = 2709 
NongliData(28) = 464533 
NongliData(29) = 1738 
NongliData(30) = 2901 
NongliData(31) = 330421 
NongliData(32) = 1242 
NongliData(33) = 2651 
NongliData(34) = 199255 
NongliData(35) = 1323 
NongliData(36) = 529706 
NongliData(37) = 3733 
NongliData(38) = 1706 
NongliData(39) = 398762 
NongliData(40) = 2741 
NongliData(41) = 1206 
NongliData(42) = 267438 
NongliData(43) = 2647 
NongliData(44) = 1318 
NongliData(45) = 204070 
NongliData(46) = 3477 
NongliData(47) = 461653 
NongliData(48) = 1386 
NongliData(49) = 2413 
NongliData(50) = 330077 
NongliData(51) = 1197 
NongliData(52) = 2637 
NongliData(53) = 268877 
NongliData(54) = 3365 
NongliData(55) = 531109 
NongliData(56) = 2900 
NongliData(57) = 2922 
NongliData(58) = 398042 
NongliData(59) = 2395 
NongliData(60) = 1179 
NongliData(61) = 267415 
NongliData(62) = 2635 
NongliData(63) = 661067 
NongliData(64) = 1701 
NongliData(65) = 1748 
NongliData(66) = 398772 
NongliData(67) = 2742 
NongliData(68) = 2391 
NongliData(69) = 330031 
NongliData(70) = 1175 
NongliData(71) = 1611 
NongliData(72) = 200010 
NongliData(73) = 3749 
NongliData(74) = 527717 
NongliData(75) = 1452 
NongliData(76) = 2742 
NongliData(77) = 332397 
NongliData(78) = 2350 
NongliData(79) = 3222 
NongliData(80) = 268949 
NongliData(81) = 3402 
NongliData(82) = 3493 
NongliData(83) = 133973 
NongliData(84) = 1386 
NongliData(85) = 464219 
NongliData(86) = 605 
NongliData(87) = 2349 
NongliData(88) = 334123 
NongliData(89) = 2709 
NongliData(90) = 2890 
NongliData(91) = 267946 
NongliData(92) = 2773 
NongliData(93) = 592565 
NongliData(94) = 1210 
NongliData(95) = 2651 
NongliData(96) = 395863 
NongliData(97) = 1323 
NongliData(98) = 2707 
NongliData(99) = 265877 
'生成当前公历年、月、日 ==> GongliStr 
curYear = Year(curTime) 
curMonth = Month(curTime) 
curDay = Day(curTime) 

GongliStr = curYear & "年" 
If (curMonth < 10) Then 
    GongliStr = GongliStr & "0" & curMonth & "月" 
Else 
    GongliStr = GongliStr & curMonth & "月" 
End If 
If (curDay < 10) Then 
    GongliStr = GongliStr & "0" & curDay & "日" 
Else 
    GongliStr = GongliStr & curDay & "日" 
End If 

'生成当前公历星期 ==> WeekdayStr 
curWeekday = Weekday(curTime) 
WeekdayStr = WeekName(curWeekday) 

'计算到初始时间1921年2月8日的天数:1921-2-8(正月初一) 
TheDate = (curYear - 1921) * 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38 
If ((curYear Mod 4) = 0 And curMonth > 2) Then 
    TheDate = TheDate + 1 
End If 

'计算农历天干、地支、月、日 
isEnd = 0 
m = 0 

Do 
    If (NongliData(m) < 4095) Then 
        k = 11 
    Else 
        k = 12 
    End If 

    n = k 
    Do 
        If (n < 0) Then 
            Exit Do 
        End If 

    '获取NongliData(m)的第n个二进制位的值 
    bit = NongliData(m) 
    For q = 1 To n Step 1 
        bit = Int(bit / 2) 
    Next 
    bit = bit Mod 2 

    If (TheDate <= 29 + bit) Then 
        isEnd = 1 
        Exit Do 
    End If 

    TheDate = TheDate - 29 - bit 

    n = n - 1 
  Loop 

  If (isEnd = 1) Then 
      Exit Do 
  End If 

  m = m + 1 
Loop 

curYear = 1921 + m 
curMonth = k - n + 1 
curDay = TheDate 

If (k = 12) Then 
    If (curMonth = (Int(NongliData(m) / 65536) + 1)) Then 
        curMonth = 1 - curMonth 
    ElseIf (curMonth > (Int(NongliData(m) / 65536) + 1)) Then 
        curMonth = curMonth - 1 
    End If 

End If 

'生成农历天干、地支、属相 ==> NongliStr 
NongliStr = TianGan(((curYear - 4) Mod 60) Mod 10) & DiZhi(((curYear - 4) Mod 60) Mod 12) 
NongliStr = NongliStr & " (" & ShuXiang(((curYear - 4) Mod 60) Mod 12) & ") 年" 
'生成农历月、日 ==> NongljDayStr 
If (curMonth < 1) Then 
    NongliDayStr = "闰" & MonName(-1 * curMonth) 
Else 
    NongliDayStr = MonName(curMonth) 
End If 
NongliDayStr = NongliDayStr & "月" 
NongliDayStr = NongliDayStr & DayName(curDay) 
NongLi= NongliStr & "  " & NongliDayStr 
end Function 
dim sdate:sdate=Nongli() 
response.Write(sdate) 
%>

posted @ 2012-02-07 11:06  FaceSun  阅读(866)  评论(0编辑  收藏  举报