<P><style>td { font-family: 宋体; font-size:9pt}</style><body bgcolor=eeeeee><table width=180 cellpadding=0 cellspacing=1 bgcolor=dddddd align=center><%'以下为ASP中通过该日历算法实现的具体代码</P><P> '先判断是否指定了一个年份和月份,没有则根据当前的年和月份显示If Request(ReqDate)= then CurrentDate=Dateelse CurrentDate=Trim(Request(ReqDate))end ifpyear=year(CurrentDate)pmonth=month(CurrentDate)</P><P> '以下的代码生成日历显示的表格头内容%> <tr align=LEFT bgcolor=#dddddd> <td width=14% height=19 align=center> <input type=button value=<< onclick=JavaScript:location.href='?ReqDate=<%=DateAdd(m,-1,CurrentDate) %>'></td> <td colspan=5 align=center> <%=pyear%>年<%=pmonth%>月</td> <td width=14% align=center> <input type=button value=>> onclick=JavaScript:location.href='?ReqDate=<%=DateAdd(m,1,CurrentDate)%>'></td> </tr> <tr align=center bgcolor=#CCCCCC> <td width=14% height=19> 日</td> <td width=14%> 一</td> <td width=14%> 二</td> <td width=14%> 三</td> <td width=14%> 四</td> <td width=14%> 五</td> <td width=14%> 六</td> </tr> <tr align=center bgcolor=ffffff height=19> <% '由于ASP中没有获取指定月共有多少天的函数,因此我们需要通过其他算法来获得,算法其实很简单,就是计算一下要显示月份的1日至下个月的1日一共相差几天fromDate = FormatDateTime(month(CurrentDate) & /1/ & year(CurrentDate))toDate = FormatDateTime(DateAdd(m,1,fromDate))'获得要显示月份的第一天为周几nunmonthstart=weekday(fromDate)-1'获得要显示的1日至下个月的1日一共相差几天(月份一共有多少天)nunmonthend=DateDiff(d,fromDate,toDate)'判断显示日历需要用几行表格来显示(每行显示7天)if nunmonthstart+nunmonthend<36 then maxi=36else maxi=43end if'循环生成表格并显示i=1do while i<maxi iv=i-nunmonthstart if i>nunmonthstart and i<=nunmonthend+nunmonthstart then '如果为显示的是今天则用红色背景显示 if iv=Day(now) and month(now)=pmonth and year(now)=pyear then response.write( <td align=center bgcolor=ffaaaa><a href='#' target=_blank> & iv & </a></td>) else response.write( <td align=center><a href='#' target=_blank> & iv & </a></td>) end if else response.write( <td> </td>) end if</P><P> '如果能被7整除(每行显示7个)则输出一个换行 if i mod 7=0 then response.write( </tr><tr align=center bgcolor=ffffff height=19>) end if i=i+1loop%></table></body>