为一个网友写的真正的精确到毫秒级的动态秒表。顺便散分!

东方之珠 CSDN会员 东方之珠 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
为一个网友写的真正的精确到毫秒级的动态秒表。这个网友发贴子提问,只精确到了秒,我觉得动得不够快,所以改进了一下,动得很快,并修改了这个网友的错误。

转载请标明出处。 VB演示窗体下载(源码):http://download.csdn.net/source/316696

Option Explicit

Dim x As Long
Dim h As Long, m As Long, s As Long, ms As Long
Dim cjlh As Long, cjlm As Long, cjls As Long
Dim cjlms As String
Private Sub Form_Load()
'Form1.StartUpPosition = 2
Form1.Caption = "真正的动态秒表(小时:分:秒.毫秒)"
Command1.Caption = "开始[&S]"
Command2.Caption = "结束[&E]"
Label1.Alignment = 2 '居中对齐
Label1.Caption = "00:00:00.000"
Timer1.Interval = 10
Timer1.Enabled = False
Label1.BackColor = &H0&
Label1.ForeColor = &HFF00&
Label1.Font.Name = "Arial Rounded MT Bold"
Label1.Alignment = 2
x = 0
End Sub
Private Sub Command1_Click()
Timer1.Enabled = True
Label1.Font.Size = 24
End Sub
Private Sub Command2_Click()
Timer1.Enabled = False
Label1.Font.Size = 14
x = 0
Label1.Caption = "运行了" & IIf(Len(Trim(Str(h))) < 2, "0" & Trim(Str(h)), Trim(Str(h))) & "小时" & 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))) & "秒" & cjlms & "毫秒"
Form1.Caption = Label1.Caption
End Sub
Private Sub Timer1_Timer() '每1秒钟触发100次
x = x + 10 '单位是毫秒
cjlh = Int(x / 3600000)
h = cjlh '取得小时
cjlm = Int(((x Mod 3600000) / 60000)) '关键在这里,用INT取整,不用INT的话,每30秒进1,有点奇怪
m = cjlm '取得分钟
cjls = Int(((x Mod 3600000) Mod 60000) / 1000)
s = cjls '取得秒种
ms = (((x Mod 3600000) Mod 60000) Mod 1000)
If Len(Trim(Str(ms))) = 2 Then
cjlms = "0" & Trim(Str(ms))
End If
If Len(Trim(Str(ms))) >= 3 Then
cjlms = Trim(Str(ms))
End If
cjlms = Left(cjlms, 2) & Trim(Str(Int(Rnd * 9)))
Label1.Caption = IIf(Len(Trim(Str(h))) < 2, "0" & Trim(Str(h)), Trim(Str(h))) + ":" + 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))) + "." + cjlms
End Sub




...全文

相关推荐

评论 31
收藏 已收藏
分享
返回顶部
东方之珠 CSDN会员
VB基础类 7,788 成员 197,583 内容