大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
elapsed.Milliseconds 获取毫秒。
创新互联公司自2013年创立以来,先为徐水等服务建站,徐水等地企业,进行企业商务咨询服务。为徐水企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
每100毫秒,do中的代码执行一次,执行时间将大于100毫秒,这是产生误差的地方之一。invoke执行一个方法txt,必须等txt里面的代码运行完毕,方法才能返回,期间占用的时间全是“误差”。
无限循环,且没有退出机制,停不下来。
vb中获取系统当前的时间用函数 now() 就可以。另外还有相关的时间 date() time()
now()获取系统当前日期和时间,如:2015-12-12 22:23:34
time()获取系统的时间,如:22:23:34不显示当前日期
date()获得系统的日期,如:2015-12-12
Private Sub Command1_Click()
MsgBox Now()
MsgBox Time()
MsgBox Date
End Sub
不需要控件就可以,用多线程的方式实现,在窗体上放一个Label和一个button按钮,代码如下:
Imports System.Threading
Public Class Form1
Dim Start As Double
Dim td As Thread
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = "00:00:00 000"
Button1.Text = "开始"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Button1.Text = "开始" Then
Button1.Text = "结束"
Start = DateAndTime.Timer
td = New Thread(AddressOf fun1)
td.Start()
Else
Button1.Text = "开始"
td.Abort()
End If
End Sub
'定义一个线程
Private Sub fun1()
Dim elapsed As TimeSpan
Dim Dg_txt As New Dg(AddressOf txt)
Do
elapsed = TimeSpan.FromMilliseconds((DateAndTime.Timer - Start) * 1000)
Me.Invoke(Dg_txt, elapsed.ToString, Label1)
Thread.Sleep(100)
Loop
End Sub
'定义一个委托
Delegate Sub Dg(ByVal s As String, ByVal obj As Label)
Sub txt(ByVal s As String, ByVal obj As Label)
obj.Text = s
End Sub
End Class
干嘛不直接用系统时间呢?
在start按下时 textbox4.text=now
在stop按下时 textbox5.text=now
format是肯定不能带毫秒滴。要实现你的效果,也简单
Format(time,"YYYY-MM-DD HH:MM:SS") "." ( timer()*1000 mod 1000)
Format(time,"YYYY-MM-DD HH:MM:SS") 加上 . 再加上毫秒数,就构成了
timer()代表的是,从午夜到现在,所经过的秒数,它的小数部分x1000就是毫秒
Label1.Text = "12时演示:" + Now.ToString("yyyy-MM-dd hh:mm:ss")
Label2.Text = "24时演示:" + Now.ToString("yyyy-MM-dd HH:mm:ss")
Label3.Text = "UTC时演示:" + System.DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss")
Label4.Text = "时间为不补0:" + Now.ToString("yyyy-MM-dd H:m:s")
Label5.Text = "时间戳:" + CLng(System.DateTime.UtcNow.Subtract(New Date(1970, 1, 1, 0, 0, 0)).TotalMilliseconds).ToString