【源码+思路】定时执行任务

按键精灵小Q
按键精灵官方账号
2022-08-31 14:34:39

作者:昨夜星辰

 

今天说的定时执行任务是指到达某个时间点让脚本去执行任务,而不是每间隔多久让脚本去执行任务。区别就是,前者通常是判断时间,而后者通常是判断时间差,从实际应用中的使用途径也会有所不同。


思路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

原文:http://bbs.anjian.com/showtopic-701190-1.aspx

...全文
210 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

11

社区成员

发帖
与我相关
我的任务
社区描述
按键精灵交流阵地
其他 企业社区
社区管理员
  • 按键精灵小Q
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧