Vb.net 如何使用小时、分钟和秒创建倒计时计时器?
我想知道我将如何着手修复我的倒计时计时器,以便它以小时为单位显示时间:分:秒 目前,它只输出秒数,我不确定哪里出错了。Vb.net 如何使用小时、分钟和秒创建倒计时计时器?,vb.net,countdown,timespan,Vb.net,Countdown,Timespan,我想知道我将如何着手修复我的倒计时计时器,以便它以小时为单位显示时间:分:秒 目前,它只输出秒数,我不确定哪里出错了。 非常感谢您的帮助 代码: Public Class Form1 Dim TargetDT As DateTime Dim fields() As String Dim Days, Hours, minutes, seconds, milliseconds As String Private Sub Button1_Click(sender As
非常感谢您的帮助 代码:
Public Class Form1
Dim TargetDT As DateTime
Dim fields() As String
Dim Days, Hours, minutes, seconds, milliseconds As String
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
fields = Split(TextBox1.Text, ":")
Hours = fields(0)
minutes = fields(1)
seconds = fields(2)
Dim CountDownFrom As TimeSpan = TimeSpan.FromHours(Hours).FromMinutes(minutes).FromSeconds(seconds)
Timer1.Interval = 1000
TargetDT = DateTime.Now.Add(CountDownFrom)
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(sender As Object, e As System.EventArgs) Handles Timer1.Tick
Dim ts As TimeSpan = TargetDT.Subtract(DateTime.Now)
If ts.TotalMilliseconds > 0 Then
Con1Time.Text = ts.ToString("hh\:mm\:ss")
Else
Con1Time.Text = "0:00:00"
Timer1.Stop()
MessageBox.Show("Done")
End If
End Sub
End Class
首先,将要倒计时的时间指定给
TimeSpan
字段。要开始倒计时,请使用计时器和秒表调用Start
。在计时器的事件处理程序中,勾选计时器的事件处理程序,获取秒表的已用时间
,然后从原始时间中减去该时间,以时间跨度
的形式获取剩余时间。然后您可以格式化并显示它。当剩余时间为零时,倒计时已过期
Private countDownTime As TimeSpan
Private countDownWatch As Stopwatch
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
countDownTime = TimeSpan.FromMinutes(30)
countDownWatch = Stopwatch.StartNew()
Timer1.Start()
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Dim timeRemaining = countDownTime - countDownWatch.Elapsed
If timeRemaining < TimeSpan.Zero Then
timeRemaining = TimeSpan.Zero
End If
Label1.Text = timeRemaining.ToString("hh\:mm\:ss")
If timeRemaining = TimeSpan.Zero Then
Timer1.Stop()
MessageBox.Show("Countdown complete")
End If
End Sub
这并不像你想象的那样。您只能从秒数
调用中获得的结果。如果要创建包含小时、分钟和秒的TimeSpan
,请调用相应的构造函数
Dim CountDownFrom As TimeSpan = New TimeSpan(Hours, minutes, seconds)
当然,这些参数应该是整数
值,而不是字符串
。打开选项并使用正确的数据类型。您在TextBox1.Text中有什么?您只需使用[TimeSpan]=[DateTimeEnd]-[DateTime.Now]
并格式化生成的TimeSpan.Textbox1.text是输入,因此用户以hh/mm/ss格式输入指定的时间,输入的任何内容都是计时器,如果有意义的话?
Dim CountDownFrom As TimeSpan = New TimeSpan(Hours, minutes, seconds)