几种简单实现定时的方法
本文由按键学院提供技术支持
按键学院交流①群(1群已满):376122403
按键学院交流②群(2群):372671254
按键学院交流③群(3群):170084238
【按键学院】安卓课程(115768679)
现在手游上很多活动、任务什么的都是在固定的时间或者间隔一段时间之后才能继续做的。那如何用代码来实现定时的功能就和脚本是否有效率挂上了勾了。只有当时间到的时候才去执行任务,这样的脚本就比一直循环去查看任务有效率多了。 这篇院刊就给大家带来几种实现定时的方法。 |
这种方法是采用计算时间间隔,来实现定时的目的。像是有些活动任务是隔一段时间开启一次,那这种通过计算时间间隔的方式就很适合用于这种场景我们可以通过TickCount命令来在脚本开始的时候记录一个时间点,然后再后续的脚本操作中不断的判断当前时间和这个时间点的差值,如果到达了差值就说明间隔的时间到了,就可以执行任务
- 您所在的用户组无法下载或查看附件
代码如下:
- Dim t=TickCount()
- Do
- If TickCount() - t >10000 Then
- TracePrint "时间到了,开始执行任务"
- Else
- TracePrint "继续等待"
- End If
- Delay 1000
- Loop
复制代码 上面这段代码虽然是可以实现了间隔时间,但是功能也太简单了一些,并且使用起来也并不方便。所以我们可以对代码进行加强- Dim TimeID()
- Function RemTime(id)
- TimeID(id) = TickCount()
- RemTime = TimeID(id)
- End Function
- Function TimeDiff(id, t)
- Dim t1 = TickCount()
- //计算时间差
- If t1 - TimeID(id) >= t Then
- TimeDiff = true
- //把该记号的时间重置成当前时间,以便可以再次计时
- TimeID(id) = t1
- Else
- TimeDiff = false
- End If
- End Function
复制代码- Call RemTime(1)
- Call RemTime(2)
- Do
- If TimeDiff(1, 10000) Then
- Call 任务1
- End If
- If TimeDiff(1, 30000) Then
- Call 任务2
- End If
- Loop
复制代码 这种代码就比前面的加强了,不但使用起来会方便,而且可以支持多个记录点同时进行计算间隔。有些活动的任务是在每天固定的时间内开始的,如果这种情况下使用上面的间隔计时的话,就会比较麻烦,因为从脚本开启运行到活动时间到了,可能中间要隔着很长的时间,换算什么的很麻烦。所以针对这种定时的活动,我们可以通过直接对比具体的时间来做到定时的目的这里需要用到一个命令
DateTime.Format,这个命令可以把当前的时间转换成固定的某个格式。比如想要得到 19:20 这样的时间格式,就可以这样写
- TracePrint DateTime.Format("%H:%S")
复制代码根据这个命令,我们就可以进行时间的对比
- Function Timing_time(t)
- Dim t1 = DateTime.Format("%H:%S")
- If t = t1 Then
- Timing = true
- Else
- Timing = false
- End If
- End Function
- If Timing_time("20:30") Then
- TracePrint "现在已经20:30了,可以执行任务"
- Else
- TracePrint "时间还没到"
- End If
复制代码上面这段代码是对比指定时间的,还可以针对日期来写一个对比日期的定时函数
- Function Timing_date(t)
- Dim t1 = DateTime.Format("%Y-%m-%d")
- If t = t1 Then
- Timing = true
- Else
- Timing = false
- End If
- End Function
- If Timing_date("2016-03-05") Then
- TracePrint "现在已经2016-03-05了,可以执行任务"
- Else
- TracePrint "时间还没到"
- End If
复制代码 有了上面的这两种定时的方法,想必在平时的脚本中已经完全足够应对一些定时的任务活动之类的了~~~~- 您所在的用户组无法下载或查看附件