'先判断是否指定了一个年份和月份,没有则根据当前的年和月份显示 If Request("ReqDate")="" then CurrentDate=Date else CurrentDate=Trim(Request("ReqDate")) end if pyear=year(CurrentDate) pmonth=month(CurrentDate)
'以下的代码生成日历显示的表格头内容%> '"> <%=pyear%>年<%=pmonth%>月 '"> 日 一 二 三 四 五 六 <% '由于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=36 else maxi=43 end if '循环生成表格并显示 i=1 do while inunmonthstart and i<=nunmonthend+nunmonthstart then '如果为显示的是今天则用红色背景显示 if iv=Day(now) and month(now)=pmonth and year(now)=pyear then response.write( "" & iv & "") else response.write( "" & iv & "") end if else response.write( " ") end if
'如果能被7整除(每行显示7个)则输出一个换行 if i mod 7=0 then response.write( "") end if i=i+1 loop%>