周二寻找在ASP经典全年 [英] Finding Tuesday for the whole year in ASP Classic

查看:102
本文介绍了周二寻找在ASP经典全年的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

IM refereing这个职位在这里。
<一href=\"http://stackoverflow.com/questions/7254947/vbscript-asp-find-every-thursday-in-a-given-month/36149786?noredirect=1#comment59937393_36149786\">vbscript ASP - 在特定月份

查找每个星期四

如何IM应该这样做,如果我想找到周二全年?让说2016?

我做了如下的基础上,从我上面提到的职位的code尝试,但它将返回我只为八月,而不是全年

  base_date = CDATE(2016年8月21日)拿到第一个周四;
周四= dateserial(年(base_date),月(base_date),1)
回复于(工作日(星期四))
如果(工作日(周四)LT;大于1),那么周四= 3 - 工作日(周四)+周四
回复于(星期四)
循环以后;
做,直到一个月(星期四)LT;&GT;月(base_date)
    的Response.Write(星期四)
    的Response.Write(&LT; BR /&gt;中)
    周四= DATEADD(D,7,星期四)
循环


解决方案

这是一个过于复杂的例子,当一个循环作品一样好一个固定的起点和终点。

 暗淡的一天
昏暗的开始日期:开始日期= CDATE(2015年3月22日)
昏暗的结束日期:ENDDATE = CDATE(2016年3月22日)对于天= STARTDATE至ENDDATE
  如果工作日(天)= vbTuesday然后回复于当天和放大器; =星期二
下一个

输出:

24/03/2015 =星期二
31/03/2015 =周二
2015年7月4日星期二=
14/04/2015 =周二
21/04/2015 =周二
28/04/2015 =周二
2015年5月5日星期二=
2015年12月5日星期二=
19/05/2015 =周二
26/05/2015 =周二
2015年2月6日周二=
2015年9月6日星期二=
16/06/2015 =周二
23/06/2015 =周二
30/06/2015 =周二
2015年7月7日星期二=
05/08/2015 =周二
21/07/2015 =周二
28/07/2015 =周二
2015年4月8日星期二=
2015年11月8日星期二=
18/08/2015 =周二
25/08/2015 =周二
2015年1月9日星期二=
2015年8月9日星期二=
15/09/2015 =周二
22/09/2015 =周二
29/09/2015 =周二
2015年6月10日星期二=
13/10/2015 =周二
20/10/2015 =周二
27/10/2015 =周二
2015年3月11日周二=
2015年10月11日星期二=
17/11/2015 =周二
24/11/2015 =周二
2015年1月12日周二=
2015年8月12日周二=
15/12/2015 =周二
22/12/2015 =周二
29/12/2015 =周二
2016年5月1日星期二=
2016年12月1日星期二=
19/01/2016 =周二
26/01/2016 =周二
2016年2月2日周二=
2016年9月2日周二=
16/02/2016 =周二
23/02/2016 =周二
2016年1月3日星期二=
2016年8月3日星期二=
15/03/2016 =周二
22/03/2016 =周二

您可以使用任何有效的日期时间常量,而不是这里 vbTuesday

im refereing to this post here. vbscript asp - Find every Thursday in a given month

How im supposed to do it if i wanna find the tuesday for the whole year? let say 2016?

I did try as below based on the code from the post i mentioned above, but it will return me only for August, instead of whole year

base_date = cdate("21 aug 2016")

'get 1st thursday;
thurs = dateserial(year(base_date), month(base_date), 1)
'response.write(weekday(thurs))
if (weekday(thurs) <> 1) then thurs = 3 - weekday(thurs) + thurs
'response.write(thurs)
'loop subsequent;
do until month(thurs) <> month(base_date)
    response.write(thurs) 
    response.write("<br />") 
    thurs = dateadd("d", 7, thurs)
loop

解决方案

That is an overly complicated example, when a For loop works just as well with a fixed start and end point.

Dim day
Dim startdate : startdate = CDate("22 mar 2015")
Dim enddate : enddate = CDate("22 mar 2016")

For day = startdate To enddate
  If WeekDay(day) = vbTuesday Then Response.Write day & " = Tuesday"
Next

Output:

24/03/2015 = Tuesday
31/03/2015 = Tuesday
07/04/2015 = Tuesday
14/04/2015 = Tuesday
21/04/2015 = Tuesday
28/04/2015 = Tuesday
05/05/2015 = Tuesday
12/05/2015 = Tuesday
19/05/2015 = Tuesday
26/05/2015 = Tuesday
02/06/2015 = Tuesday
09/06/2015 = Tuesday
16/06/2015 = Tuesday
23/06/2015 = Tuesday
30/06/2015 = Tuesday
07/07/2015 = Tuesday
14/07/2015 = Tuesday
21/07/2015 = Tuesday
28/07/2015 = Tuesday
04/08/2015 = Tuesday
11/08/2015 = Tuesday
18/08/2015 = Tuesday
25/08/2015 = Tuesday
01/09/2015 = Tuesday
08/09/2015 = Tuesday
15/09/2015 = Tuesday
22/09/2015 = Tuesday
29/09/2015 = Tuesday
06/10/2015 = Tuesday
13/10/2015 = Tuesday
20/10/2015 = Tuesday
27/10/2015 = Tuesday
03/11/2015 = Tuesday
10/11/2015 = Tuesday
17/11/2015 = Tuesday
24/11/2015 = Tuesday
01/12/2015 = Tuesday
08/12/2015 = Tuesday
15/12/2015 = Tuesday
22/12/2015 = Tuesday
29/12/2015 = Tuesday
05/01/2016 = Tuesday
12/01/2016 = Tuesday
19/01/2016 = Tuesday
26/01/2016 = Tuesday
02/02/2016 = Tuesday
09/02/2016 = Tuesday
16/02/2016 = Tuesday
23/02/2016 = Tuesday
01/03/2016 = Tuesday
08/03/2016 = Tuesday
15/03/2016 = Tuesday
22/03/2016 = Tuesday

You can use any of the valid Date Time Constants here instead of vbTuesday.

这篇关于周二寻找在ASP经典全年的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆