首页 | 免费域名 | 个人服务器 | 一流信息监控拦截系统 | 虚拟主机知识库 | ASP 空间 | ASP技术大全 | 下载中心 | 客户服务中心
  7i24 > ASP技术大全 > 代码乐园 >
    7i24 .Com  
  使用ASP编写农历算法(二)

7i24.Com不停为您服务
使用ASP编写农历算法(二)

function GetDaysFromStart(years)
  GetDaysFromStart = (CalendarData(years-m_minyear,0) AND &H3f)
end function

function NongMonthIsLarge(years,months)
  NongMonthIsLarge = false
  if(months<9) then
    if(CalendarData(years-m_minyear,1) AND Cal2N(8 - months)) then
      NongMonthIsLarge = true
    end if
  else
    ch=Cal2N(12 - months)
    ch=MoveBit(ch)
    if(CalendarData(years-m_minyear,2) AND ch) then  
NongMonthIsLarge = true
  end if
end function

function GetNongRunYue(years)
  GetNongRunYue = (CalendarData(years-m_minyear,2) AND &H0f)
end function

function GongMonthIsLarge(months)
  GongMonthIsLarge = false
  if months < 8 then
    if (months mod 2) <> 0 then
      GongMonthIsLarge = true
    end if
  else
    if ((months mod 2) = 0) then
      GongMonthIsLarge = true
    end if
  end if
end function

%>

<SCRIPT LANGUAGE="JSCript" RUNAT=Server>
function MoveBit(num)
{
  return num<<=4;
}
</SCRIPT>

<%
Dim DisplayNongLiDate
Function GetDaysInMonth(iMonth, iYear)
  Select Case iMonth
    Case 1, 3, 5, 7, 8, 10, 12
      GetDaysInMonth = 31
    Case 4, 6, 9, 11
      GetDaysInMonth = 30
    Case 2
      If IsDate("February 29, " & iYear) Then
        GetDaysInMonth = 29
      Else
        GetDaysInMonth = 28
      End If
  End Select
End Function

Function GetWeekdayMonthStartsOn(dAnyDayInTheMonth)
  Dim dTemp
  dTemp = DateAdd("d", -(Day(dAnyDayInTheMonth) - 1),
dAnyDayInTheMonth)
  GetWeekdayMonthStartsOn = WeekDay(dTemp)
End Function

Function SubtractOneMonth(dDate)
  SubtractOneMonth = DateAdd("m", -1, dDate)
End Function

Function AddOneMonth(dDate)
  AddOneMonth = DateAdd("m", 1, dDate)
End Function


Dim dDate  
Dim iDIM   
Dim iDOW   
Dim iCurrent 
Dim iPosition

If IsDate(Request.QueryString("date")) Then
  dDate = CDate(Request.QueryString("date"))
Else
  If IsDate(Request.QueryString("month") & "-" & Request.QueryString
("day") & "-" & Request.QueryString("year")) Then
    dDate = CDate(Request.QueryString("month") & "-" &
Request.QueryString("day") & "-" & Request.QueryString("year"))
  Else
    dDate = Date()
    
    If Len(Request.QueryString("month")) <> 0 Or Len
(Request.QueryString("day")) <> 0 Or Len(Request.QueryString("year"))
<> 0 Or Len(Request.QueryString("date")) <> 0 Then
      Response.Write "对不起,你选择的日期非法,日期自动设置为当前日期.<BR><BR>"
    End If
  End If
End If

iDIM = GetDaysInMonth(Month(dDate), Year(dDate))
iDOW = GetWeekdayMonthStartsOn(dDate)

%>

<TABLE BORDER=10 CELLSPACING=0 CELLPADDING=0>
<TR>
<TD>
<TABLE BORDER=1 CELLSPACING=0 CELLPADDING=1 BGCOLOR=#99CCFF>
  <TR>
    <TD BGCOLOR=#000099 ALIGN="center" COLSPAN=7>
      <TABLE WIDTH=100% BORDER=0 CELLSPACING=0 CELLPADDING=0>
        <TR>
          <TD ALIGN="right"><A HREF="./cal.asp?date=<%=
SubtractOneMonth(dDate) %>"><FONT COLOR=#FFFF00 SIZE="-
1"><<</FONT></A></TD>
          <TD ALIGN="center"><FONT COLOR=#FFFF00><B><%=
MonthName(Month(dDate)) & " " & Year(dDate) %> <%=
GetGanZhi(Year(dDate))%></B></FONT></TD>
          <TD ALIGN="left"><A HREF="./cal.asp?date=<%=
AddOneMonth(dDate) %>"><FONT COLOR=#FFFF00 SIZE="-
1">>></FONT></A></TD>
        </TR>
      </TABLE>
    </TD>
  </TR>
  <TR>
    <TD ALIGN="center" BGCOLOR=#0000CC><FONT COLOR=#FFFF00><B>星期
日</B></FONT><BR><IMG SRC="./images/spacer.gif" WIDTH=60 HEIGHT=1
BORDER=0></TD>
    <TD ALIGN="center" BGCOLOR=#0000CC><FONT COLOR=#FFFF00><B>星期
一</B></FONT><BR><IMG SRC="./images/spacer.gif" WIDTH=60 HEIGHT=1
BORDER=0></TD>
    <TD ALIGN="center" BGCOLOR=#0000CC><FONT COLOR=#FFFF00><B>星期
二</B></FONT><BR><IMG SRC="./images/spacer.gif" WIDTH=60 HEIGHT=1
BORDER=0></TD>
    <TD ALIGN="center" BGCOLOR=#0000CC><FONT COLOR=#FFFF00><B>星期
三</B></FONT><BR><IMG SRC="./images/spacer.gif" WIDTH=60 HEIGHT=1
BORDER=0></TD>
    <TD ALIGN="center" BGCOLOR=#0000CC><FONT COLOR=#FFFF00><B>星期
四</B></FONT><BR><IMG SRC="./images/spacer.gif" WIDTH=60 HEIGHT=1
BORDER=0></TD>
    <TD ALIGN="center" BGCOLOR=#0000CC><FONT COLOR=#FFFF00><B>星期
五</B></FONT><BR><IMG SRC="./images/spacer.gif" WIDTH=60 HEIGHT=1
BORDER=0></TD>
    <TD ALIGN="center" BGCOLOR=#0000CC><FONT COLOR=#FFFF00><B>星期
六</B></FONT><BR><IMG SRC="./images/spacer.gif" WIDTH=60 HEIGHT=1
BORDER=0></TD>
  </TR>
<%
If iDOW <> 1 Then
  Response.Write vbTab & "<TR>" & vbCrLf
  iPosition = 1
  Do While iPosition < iDOW
    Response.Write vbTab & vbTab & "<TD> </TD>" & vbCrLf
    iPosition = iPosition + 1
  Loop
End If

iCurrent = 1
iPosition = iDOW
Do While iCurrent <= iDIM
  If iPosition = 1 Then
    Response.Write vbTab & "<TR>" & vbCrLf
  End If
  
  If iCurrent = Day(dDate) Then
    Response.Write vbTab & vbTab & "<TD BGCOLOR=#00FFFF><FONT
SIZE=""-1""><B>" & iCurrent & "</B></FONT><BR>"
    DisplayNongLiDate = ConvertToNongLi(FormatDateTime(dDate,1))
    Response.Write vbTab & GetNongLiMonthName(DisplayNongLiDate)
& "月" & GetNongLiDayName(DisplayNongLiDate) & "<BR></TD>" & vbCrLf
  Else
    Response.Write vbTab & vbTab & "<TD><A HREF=""./cal.asp?
date=" & Month(dDate) & "-" & iCurrent & "-" & Year(dDate)
& """><FONT SIZE=""-1"">" & iCurrent & "</FONT></A><BR>"
    DisplayNongLiDate = ConvertToNongLi(FormatDateTime(Year
(dDate) & "-" & Month(dDate) & "-" & iCurrent ,1))
    Response.Write vbTab & GetNongLiMonthName(DisplayNongLiDate)
& "月" & GetNongLiDayName(DisplayNongLiDate) & "<BR></TD>" & vbCrLf
  End If
  
  If iPosition = 7 Then
    Response.Write vbTab & "</TR>" & vbCrLf
    iPosition = 0
  End If
  
  iCurrent = iCurrent + 1
  iPosition = iPosition + 1
Loop

If iPosition <> 1 Then
  Do While iPosition <= 7
    Response.Write vbTab & vbTab & "<TD> </TD>" & vbCrLf
    iPosition = iPosition + 1
  Loop
  Response.Write vbTab & "</TR>" & vbCrLf
End If
%>
</TABLE>
</TD>
</TR>
</TABLE>

<BR>

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><TR><TD ALIGN="center">
<FORM ACTION="./cal.asp" METHOD=GET>
<SELECT NAME="month">
  <OPTION VALUE=1>一月</OPTION>
  <OPTION VALUE=2>二月</OPTION>
  <OPTION VALUE=3>三月</OPTION>
  <OPTION VALUE=4>四月</OPTION>
  <OPTION VALUE=5>五月</OPTION>
  <OPTION VALUE=6>六月</OPTION>
  <OPTION VALUE=7>七月</OPTION>
  <OPTION VALUE=8>八月</OPTION>
  <OPTION VALUE=9>九月</OPTION>
  <OPTION VALUE=10>十月</OPTION>
  <OPTION VALUE=11>十一月</OPTION>
  <OPTION VALUE=12>十二月</OPTION>
</SELECT>
<SELECT NAME="day">
  <OPTION VALUE=1>1</OPTION>
  <OPTION VALUE=2>2</OPTION>
  <OPTION VALUE=3>3</OPTION>
  <OPTION VALUE=4>4</OPTION>
  <OPTION VALUE=5>5</OPTION>
  <OPTION VALUE=6>6</OPTION>
  <OPTION VALUE=7>7</OPTION>
  <OPTION VALUE=8>8</OPTION>
  <OPTION VALUE=9>9</OPTION>
  <OPTION VALUE=10>10</OPTION>
  <OPTION VALUE=11>11</OPTION>
  <OPTION VALUE=12>12</OPTION>
  <OPTION VALUE=13>13</OPTION>
  <OPTION VALUE=14>14</OPTION>
  <OPTION VALUE=15>15</OPTION>
  <OPTION VALUE=16>16</OPTION>
  <OPTION VALUE=17>17</OPTION>
  <OPTION VALUE=18>18</OPTION>
  <OPTION VALUE=19>19</OPTION>
  <OPTION VALUE=20>20</OPTION>
  <OPTION VALUE=21>21</OPTION>
  <OPTION VALUE=22>22</OPTION>
  <OPTION VALUE=23>23</OPTION>
  <OPTION VALUE=24>24</OPTION>
  <OPTION VALUE=25>25</OPTION>
  <OPTION VALUE=26>26</OPTION>
  <OPTION VALUE=27>27</OPTION>
  <OPTION VALUE=28>28</OPTION>
  <OPTION VALUE=29>29</OPTION>
  <OPTION VALUE=30>30</OPTION>
  <OPTION VALUE=31>31</OPTION>
</SELECT>
<SELECT NAME="year">
  <OPTION VALUE=1990>1990</OPTION>
  <OPTION VALUE=1991>1991</OPTION>
  <OPTION VALUE=1992>1992</OPTION>
  <OPTION VALUE=1993>1993</OPTION>
  <OPTION VALUE=1994>1994</OPTION>
  <OPTION VALUE=1995>1995</OPTION>
  <OPTION VALUE=1996>1996</OPTION>
  <OPTION VALUE=1997>1997</OPTION>
  <OPTION VALUE=1998>1998</OPTION>
  <OPTION VALUE=1999 SELECTED>1999</OPTION>
  <OPTION VALUE=2000>2000</OPTION>
  <OPTION VALUE=2001>2001</OPTION>
  <OPTION VALUE=2002>2002</OPTION>
  <OPTION VALUE=2003>2003</OPTION>
  <OPTION VALUE=2004>2004</OPTION>
  <OPTION VALUE=2005>2005</OPTION>
  <OPTION VALUE=2006>2006</OPTION>
  <OPTION VALUE=2007>2007</OPTION>
  <OPTION VALUE=2008>2008</OPTION>
  <OPTION VALUE=2009>2009</OPTION>
  <OPTION VALUE=2010>2010</OPTION>
</SELECT>
<BR>
<INPUT TYPE="submit" VALUE="在日历上显示该日期!">
</FORM>
</TD></TR></TABLE> 


  2002年1月9日  阅读 1448 次  发送此页给朋友  来源:    版权争议  删除

相关文章:   近期热点:

上一篇: 使用ASP编写农历算法(一)
下一篇: 用ASP编写农历算法(三)
返回上一层...
搜索:

(C)2004-2022 7i24.Com 保留所有权利