'先判斷是否指定了一個(gè)年份和月份,沒有則根據(jù)當(dāng)前的年和月份顯示 If Request("ReqDate")="" then CurrentDate=Date else CurrentDate=Trim(Request("ReqDate")) end if pyear=year(CurrentDate) pmonth=month(CurrentDate)
'以下的代碼生成日歷顯示的表格頭內(nèi)容 %> <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中沒有獲取指定月共有多少天的函數(shù),因此我們需要通過(guò)其他算法來(lái)獲得,算法其實(shí)很簡(jiǎn)單,就是計(jì)算一下要顯示月份的1日至下個(gè)月的1日一共相差幾天 fromDate = FormatDateTime(month(CurrentDate) & "/1/" & year(CurrentDate)) toDate = FormatDateTime(DateAdd("m",1,fromDate)) '獲得要顯示月份的第一天為周幾 nunmonthstart=weekday(fromDate)-1 '獲得要顯示的1日至下個(gè)月的1日一共相差幾天(月份一共有多少天) nunmonthend=DateDiff("d",fromDate,toDate) '判斷顯示日歷需要用幾行表格來(lái)顯示(每行顯示7天) if nunmonthstart+nunmonthend<36 then maxi=36 else maxi=43 end if '循環(huán)生成表格并顯示 i=1 do 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
'如果能被7整除(每行顯示7個(gè))則輸出一個(gè)換行 if i mod 7=0 then response.write( "</tr><tr align=center bgcolor=ffffff height=19>") end if i=i+1 loop %> </table> </body></html>