[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] VBS如何根据当前是否在指定日期范围内执行不同操作?

[已解决]xp或win7系统,局域网环境(不能连外网),批处理如何判断夏季或者冬季时间段?


夏季或者冬季时间段,判断依据如下:

夏季时间:4月的第三周周一 ---10月的第二周周日
如果在每年这个时间段内,每天下午5:55,自动关机

冬季时间:10月的第三周周一 --次年4月的第二周周日
如果在每年这个时间段内,每天下午5:25,自动关机



以2016年为例,
夏季时间是2016.4.18—2016.10.9,
冬季时间是2016.10.10—2017.4.16(注意这个是2017年)

以2017年为例,
4.1-4.2在一个周内,属于4月第一周
4.3-4.9是4月第二周
4.10是4月的第三周周一,夏季时间开始。。。。
1

评分人数

任务计划本来就可以设置就这个时间段,非要自己找虐。
去学去写去用才有进步。安装python3代码存为xx.py 双击运行或右键用IDLE打开按F5运行

TOP

数学不好,我闪了
判定一个人是否为伸手党的标准是取决于他的态度和诚意。

TOP

回复 3# codegay


    如何智能判断4月份或10月份的某1天,具体属于冬季还是夏季呢?

判断依据如下
夏季时间:4月的第三周周一 ---10月的第二周周日
冬季时间:10月的第三周周一 --次年4月的第二周周日

TOP

回复 2# codegay


    难点在于日期计算而不是任务计划

TOP

vbs
  1. d1=year(now) & right("0"&month(now),2) & right("0"&day(now),2)
  2. d2=getday("2016-4",3,1)  '年月,第几周,星期几
  3. d3=getday("2016-10",2,7)
  4. If d1 >=d2 and d1 <=d3 Then
  5.     msgbox "每天下午5:55,自动关机"
  6. Else
  7.     msgbox "每天下午5:25,自动关机"
  8. End If
  9. Function getday(ym,w,ww)
  10.     For i=0 To 6
  11.         d=dateadd("d",w*7-1,ym)-i
  12.         If weekday(d,2) = ww Then
  13.             getday=year(d) & right("0"&month(d),2) & right("0"&day(d),2)
  14.         End If
  15.     Next
  16. End Function
复制代码
1

评分人数

TOP

本帖最后由 ygqiang 于 2016-10-8 16:27 编辑

回复 6# pcl_test


    多谢。

d2=getday("2016-4",3,1)  '年月,第几周,星期几
d3=getday("2016-10",2,7)

这里的2016不能固定吧?因为以后可能是2017,2018,。。。等等年代。。



夏季时间:4月的第三周周一 ---10月的第二周周日
冬季时间:10月的第三周周一 --次年4月的第二周周日

每年的这个时间段,4月和10月,都不是固定的日期。

TOP

回复 7# ygqiang
year(now)&"-4"

TOP

回复 8# pcl_test


谢谢

TOP

回复 8# pcl_test
请问版主:该代码是运后就可以,还是:加到启动项,每次开机运行此vbs?

TOP

回复  pcl_test
请问版主:该代码是运后就可以,还是:加到启动项,每次开机运行此vbs?
dnvplj 发表于 2016-10-8 22:39



    加到启动项,每次开机运行此vbs
1

评分人数

    • pcl_test: 指定回应某楼层的在相应楼层点回复,少引用PB -30

TOP

谢谢11楼朋友的回复,明白。

TOP

vbs如何判断当前日期是否在指定日期范围内

本帖最后由 pcl_test 于 2017-4-10 18:53 编辑

vbs代码小问题,日期范围判断,求教。

比如当前是4月10日,应该运行z-jxia,实际却运行z-jdon


echo 夏季时间:4月的第三周周一 ---10月的第二周周日
echo 冬季时间:10月的第三周周一 ---次年4月的第二周周日
  1. On Error Resume next
  2. Set ws = CreateObject("Wscript.Shell")
  3. d1=year(now) & right("0"&month(now),2) & right("0"&day(now),2)
  4. d2=getday(year(now)&"-4",3,1)  '年月,第几周,星期几
  5. d3=getday(year(now)&"-10",2,7)
  6. If d1 >=d2 and d1 <=d3 Then
  7.     ws.run "c:\z-jxia.bat"
  8. Else
  9.     ws.run "c:\z-jdon.bat"
  10. End If
  11. Function getday(ym,w,ww)
  12.     For i=0 To 6
  13.         d=dateadd("d",w*7-1,ym)-i
  14.         If weekday(d,2) = ww Then
  15.             getday=year(d) & right("0"&month(d),2) & right("0"&day(d),2)
  16.         End If
  17.     Next
  18. End Function
复制代码
1

评分人数

TOP

4月10号还在上一年的冬季时间:10月的第三周周一 ---次年4月的第二周周日

TOP

本帖最后由 ygqiang 于 2017-4-10 19:38 编辑

回复 14# pcl_test


    夏季时间:4月的第三周周一



4月10日明显是这个夏季时间段啊..

4.1-4.2是4月第一周
4.3-4.9是4月第二周
4.10是4月第三周周一

TOP

返回列表