我这里有2个计时器,找高手鉴定一下哪个性能更好一点。

pengwu666 2013-03-15 04:15:56

Option Explicit
Dim x As Long
Dim m As Long, s As Long
Dim cjlm As Long, cjls As Long

Private Sub Form_Load()
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
x = x + 1000
cjlm = Int(((x Mod 3600000) / 60000))
m = cjlm '取得分钟
cjls = Int(((x Mod 3600000) Mod 60000) / 1000)
s = cjls '取得秒种
Label1.Caption = IIf(Len(Trim(Str(m))) < 2, "0" & Trim(Str(m)), Trim(Str(m))) + ":" + IIf(Len(Trim(Str(s))) < 2, "0" & Trim(Str(s)), Trim(Str(s)))
End Sub
...全文
562 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengwu666 2013-03-18
  • 打赏
  • 举报
回复
引用 3 楼 c0631106233 的回复:
我一般用第二种,何必费那么多劲去自己计算,而且像你第一种一次就加1000是不是太大了?!运行时间长的话变量会溢出……
本来是加10的。但是这样时间根本就慢了,基本要500以上时间才跟的行。我才换成1000的。
bluelang 2013-03-15
  • 打赏
  • 举报
回复
当然是第二个了,第一个计算的时间误差比较大。你可以找找相关的资料,或者你在同一个界面里同时两个都显示,一比较就出来了。
IT_Stack 2013-03-15
  • 打赏
  • 举报
回复
第二中。。。无论是代码清晰度和优化都是第二种 没的说,,
worldy 2013-03-15
  • 打赏
  • 举报
回复
当然是第二种
yongshengqi 2013-03-15
  • 打赏
  • 举报
回复
更准确的记时的话用API会更合适,印象中好象有个gettickcount的函数可以实现,因为在家的关系无法举实例,需要你自行找一下。
酷心 2013-03-15
  • 打赏
  • 举报
回复
我一般用第二种,何必费那么多劲去自己计算,而且像你第一种一次就加1000是不是太大了?!运行时间长的话变量会溢出……
pengwu666 2013-03-15
  • 打赏
  • 举报
回复
说说这两个计时器哪个更好一点。 下面一个的代码Timer2改成Timer1.我弄错了
pengwu666 2013-03-15
  • 打赏
  • 举报
回复

Option Explicit
Dim t1 As Double

Private Sub Form_Load()
Timer2.Interval = 50
t1 = Now
Timer2.Enabled = True
End Sub

Private Sub Timer1_Timer()
Label1.Caption = Format(Now - t1, "hh:mm:ss")
End Sub

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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