ASP,循环从周一到周日的日期,而且判断那天是周一,用不同的颜色输出?

各位大侠相助,代码
<%
td=date()

str="一二三四五六日"

for x=1 to 7

if td-weekday(td)+1+x=td then

response.write "<font color=red>周"&mid(str,x,1)&":"&FormatDateTime(td-weekday(td)+1+x,1)&"</font><br>"
else
response.write "周"&mid(str,x,1)&":"&FormatDateTime(td-weekday(td)+1+x,1)&"<br>"
end if
next

%>
我就是有点不明白就是td-weekday(td)+1+x=td为什么还有+x,就比如今天2009年8月10日
就是星期一了,但是weekday(td)返回不是1吗,为什么还要+x,加了x就不相等了 ,大侠,请请多多的指点迷津。O(∩_∩)O~

第1个回答  2009-08-10
因为系统取得的星期是从星期日开始的,也就是说weekday(td)+1就是代表今天星期数,而加上x就能保证是从这一周的第二天(也就是周一)开始

---------------
再补充一点。
这段代码用意很明显:就是想取得本周的周一至周日所有的日期和星期,所以得保证是从周一开始循环,然后再判断今天是星期几,并用红色显示出来,所以才有了if td-weekday(td)+1+x=td then这个判断。
第2个回答  2009-08-10
td-weekday(td)+1+x=td 好奇怪的等式
分解
weekday(td)=x+1
weekday是一周中的第几天,返回的是2
x=weekday(td)-1 如果是星期一那么 下x=2-1=1
mid(str,1,1) 就是一喽本回答被提问者采纳
第3个回答  2009-08-12
td=date()

str="一二三四五六日"

for x=1 to 7

if td-weekday(td)+1+x=td then
response.write "td="&td&"<BR>"
response.write "weekday("&td&")="&weekday(td)&"<BR>"
response.write "td-weekday(td)="&td-weekday(td)&"<BR>"
response.write "td-weekday(td)+1="&td-weekday(td)+1&" ->这是星期天的日期,这里就好说明了,加多少就是星期几了,加一就变成星期一,加二就是星期二<BR>"
response.write "<font color=red>周"&mid(str,x,1)&":"&FormatDateTime(td-weekday(td)+1+x,1)&"</font><br>"
else
response.write "周"&mid(str,x,1)&":"&FormatDateTime(td-weekday(td)+1+x,1)&"<br>"
end if
next
应该可以看得明白了吧?运行一下程序你就知道了。
td-weekday(td)+1+x
这几个数值主要是想得到上个星期天的日期,X为星期几,这样加X就可以知道星期几的日期是什么了。
日期相等说明就是当天的日期了,所以就可以正确判断出来了。
个人认为这样子做更加复杂了。把问题复杂化的程序是不可取的。
判断语句可以直接改为:if x=weekday(td)-1 then