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分钟吗。这是书上的例题,是它讲错了,还是我什

'表示注释阿。。赫赫

我的意思是最后一个循环能够控制剩下的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