vb 关于时间延迟
来源:百度知道 编辑:UC知道 时间:2024/05/16 02:19:09
编写一个用来延迟指定时间(秒)的sub过程,调用这个过程,按指定的时间间隔显示若干行信息。
Timer函数用来返回系统时钟从午夜开始计算的秒数,把Timer加上需要延迟的时间(秒)作为循环结束的条件,
当Timer超过这个时间时结束循环。程序如下
Static Sub delayloop(delaytime)
Const secondsinday = 86400
loopfinish = Timer + delaytime
If loopfinish > secondsinday Then
loopfinish = loopfinish - secondsinday
Do While Timer > loopfinish
Loop
End If
Do While Timer < loopfinish
Loop
End Sub
Sub Form_Click()
Print "现在输出第一行"
Print "等待5秒"
delayloop 5
Print
Print "输出第二行"
Print "等待10秒"
delayloop 10
Print
Print "输出第三行"
End Sub
关于下面这个地方不是很理解,Timer到了午夜应该变为0吧,如果在23:50时,要求延迟30分,那么应该
是在零点20分结束程序,可用下面这个程序的话,loopfinish=20,timer>loopfinish 才保证循环继续
,可是到午夜timer=0,只经过了10分,timer已经小于等于20的loopfinish,循环结束。这样不只延迟了
10分钟吗。这是书上的例题,是它讲错了,还是我什
Timer函数用来返回系统时钟从午夜开始计算的秒数,把Timer加上需要延迟的时间(秒)作为循环结束的条件,
当Timer超过这个时间时结束循环。程序如下
Static Sub delayloop(delaytime)
Const secondsinday = 86400
loopfinish = Timer + delaytime
If loopfinish > secondsinday Then
loopfinish = loopfinish - secondsinday
Do While Timer > loopfinish
Loop
End If
Do While Timer < loopfinish
Loop
End Sub
Sub Form_Click()
Print "现在输出第一行"
Print "等待5秒"
delayloop 5
Print "输出第二行"
Print "等待10秒"
delayloop 10
Print "输出第三行"
End Sub
关于下面这个地方不是很理解,Timer到了午夜应该变为0吧,如果在23:50时,要求延迟30分,那么应该
是在零点20分结束程序,可用下面这个程序的话,loopfinish=20,timer>loopfinish 才保证循环继续
,可是到午夜timer=0,只经过了10分,timer已经小于等于20的loopfinish,循环结束。这样不只延迟了
10分钟吗。这是书上的例题,是它讲错了,还是我什
'表示注释阿。。赫赫
我的意思是最后一个循环能够控制剩下的20分钟
Do While Timer < loopfinish '00:20
'out of loop at 00:20
Loop
=================================
你的理解也对 , 虽然分钟和秒有些差别,不过理解上是一样的
这后面还有两句代码 , 可能在你的那种情况下就有用了
'假如delaytime = 30 * 60 = 30 分钟 * 60 秒
Static Sub delayloop(delaytime)
Const secondsinday = 86400
'假如Timer 是0:00 前10分钟
loopfinish = Timer + delaytime ' 20*60 + 86400
If loopfinish > secondsinday Then
loopfinish = loopfinish - secondsinday '20 * 60
Do While Timer > loopfinish
'out of loop at 0:00
Loop
End If
Do While Timer < loopfinish '00:20
'out of loop at 00:20
Loop
End Sub