- 按键认证大神
- 728264
- 3502
- 18
- 1899 朵
- 27454 个
- 1718 个
- 82980
- 2011-08-04
|
1#
t
T
发表于 2022-07-19 10:15
|
|只看楼主
今天说的定时执行任务是指到达某个时间点让脚本去执行任务,而不是每间隔多久让脚本去执行任务。区别就是,前者通常是判断时间,而后者通常是判断时间差,从实际应用中的使用途径也会有所不同。思路1:只判断时间,不判断日期。优点:无需填写日期。缺点:一旦当前时间超过设定时间,则条件一直达成。源码:
- Dim 当前时间, 设定时间
- 设定时间 = CDate("10:00")
- Do
- 当前时间 = Time()
- If 当前时间 >= 设定时间 Then
- MessageBox "条件达成!"
- ExitScript
- End If
- Delay 100
- Loop
复制代码 思路2:既判断时间部分,也判断日期部分。优点:能精准地判断时间。缺点:即便时间部分不变,代码中也需要频繁更改日期部分,来实现每天的定时任务。源码:- Dim 当前时间, 设定时间
- 设定时间 = CDate("2022/07/19 10:00")
- Do
- 当前时间 = Now()
- If 当前时间 >= 设定时间 Then
- MessageBox "条件达成!"
- ExitScript
- End If
- Delay 100
- Loop
复制代码 思路3:既判断时间部分,也判断日期部分,但日期部分由代码自动计算。优点:能精准地判断时间,无需频繁修改日期部分。缺点:较以上两种思路而言,没有缺点。源码:- Dim 当前时间, 设定时间
- 设定时间 = CDate("10:00")
- 设定时间 = 获取完整时间(设定时间)
- Do
- 当前时间 = Now()
- If 当前时间 >= 设定时间 Then
- MessageBox "条件达成!"
- ExitScript
- End If
- Delay 100
- Loop
- Function 获取完整时间(时间)
- Dim 当前时间, 年月日
- 当前时间 = Now()
- 年月日 = Year(当前时间) & "/" & Month(当前时间) & "/" & Day(当前时间)
- If CDate(时间) < Time() Then '时间已过
- 获取完整时间 = DateAdd("d", 1, CDate(年月日 & " " & 时间))
- Else
- 获取完整时间 = CDate(年月日 & " " & 时间)
- End If
- End Function
复制代码
|