【 tulaoshi.com - Web开发 】
代码如下:
style
td { font-family: "宋体"; font-size:9pt}
/style
body bgcolor="eeeeee"
table width="180" cellpadding="0" cellspacing="1" bgcolor="dddddd" style="text-align:center"
%
'以下为ASP中通过该日历算法实现的具体代码
'先判断是否指定了一个年份和月份,没有则根据当前的年和月份显示
If Request("ReqDate")="" then
CurrentDate=Date
else
CurrentDate=Trim(Request("ReqDate"))
end if
pyear=year(CurrentDate)
pmonth=month(CurrentDate)
'以下的代码生成日历显示的表格头内容
%
tr align="LEFT" bgcolor="#dddddd"
td width="14%" height="19" style="text-align:center"
input type="button" value="" onclick="JavaScript:location.href='?ReqDate=%=DateAdd("m",-1,CurrentDate) %'"
/td
td colspan="5" style="text-align:center"
%=pyear%年%=pmonth%月
/td
td width="14%" style="text-align:center"
input type="button" value="" onclick="JavaScript:location.href='?ReqDate=%=DateAdd("m",1,CurrentDate)%'"
/td
/tr
tr style="text-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 style="text-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+nunmonthend36 then
maxi=36
else
maxi=43
end if
'循环生成表格并显示
i=1
do while imaxi
iv=i-nunmonthstart
if inunmonthstart and i=nunmonthend+nunmonthstart then
'如果为显示的是今天则用红色背景显示
if iv=Day(now) and month(now)=pmonth and year(now)=pyear then
response.write( "td style="text-align:center" bgcolor=#ffaaaaa href='#' target=_blank" & iv & "/a/td")
else
response.write( "td style="text-align:center"a href='#' target=_blank" & iv & "/a/td")
end if
else
response.write( "td /td")
end if
'如果能被7整除(每行显示7个)则输出一个换行
if i mod 7=0 then
response.write( "/trtr style="text-align:center" bgcolor=ffffff height=19")
end if
i=i+1
loop
%
/table
/body/html