VB.net实时时间经过功能

标签 vb.net timer countdowntimer

我已经创建了一个与计算机时间同步的实时时钟,并显示在标签中。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Time.Text = Date.Now.ToString("h:mm:ss tt")
End Sub

我想制作一个实时时间经过的功能,它会根据我创建的实时时钟不断计算从开始到停止的时间经过的秒/分钟/小时。我将为此创建一个开始和停止按钮。这可能吗?提前致谢。

<小时/>

我现在能够完成所有事情,并且我添加了一个功能,可以根据我的实时时钟记录开始和结束时间。这是我的工作代码:

Dim hr, min, sec As Integer

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Time.Text = Date.Now.ToString("h:mm:ss tt")
End Sub

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

    Start.Text = ""
    EndLbl.Text = ""
    Elapse.Text = ""
    Timer2.Enabled = True
    Start.Text = Time.Text
End Sub

Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick

    sec = sec + 1
    If (sec = 60) Then
        sec = 0
        min = min + 1
    ElseIf (min = 60) Then
        min = 0
        hr = hr + 1
    ElseIf (hr = 24) Then
        hr = 0
        min = 0
        sec = 0
    End If

    Elapse.Text = String.Format("{0}hr : {1}min : {2}sec", hr, min, sec)
    Timer2.Interval = 1000
End Sub

Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
    Timer2.Enabled = False
    EndLbl.Text = Label4.Text

    hr = 0
    min = 0
    sec = 0
    Timer2.Interval = 1
End Sub

归功于 NeverHopeless 给出的起始代码。非常感谢。

最佳答案

我建议您只使用 1 个计时器:

Public Class Form2

Private _elapseTimerRunning As Boolean = False
Private _elapseStartTime As DateTime

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles Me.Load
    Timer1.Interval = 1000
    Timer1.Enabled = True
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    txtTime.Text = Now.ToString("h:mm:ss tt")
    If _elapseTimerRunning = True Then
        Dim elapsedtime = DateTime.Now.Subtract(_elapseStartTime)
        txtElapsed.Text = String.Format("{0}hr : {1}min : {2}sec", elapsedtime.Hours, elapsedtime.Minutes, elapsedtime.Seconds)
    End If
End Sub

Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click
    _elapseStartTime = DateTime.Now
    _elapseTimerRunning = True
End Sub

Private Sub btnStop_Click(sender As Object, e As EventArgs) Handles btnStop.Click
    _elapseTimerRunning = False
End Sub

下课

关于VB.net实时时间经过功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18841933/

相关文章:

swift - 在 swiftUI 的后台继续运行计时器

java - mHandlerhandleMessage有时会更新错误的textview

javascript - 如何计算 HTML 元素在一天后消失的时间?

java - 如何让 CountDownTimer 计数到 1?

vb.net - 如何在 VB6 应用程序中调用 .NET 创建的 DLL?

ios - 同时运行两个定时器

reactjs - 如何使用 React Count Down Timer 单击提交按钮后以秒为单位获取时间

vb.net - 这个 coinmex API 有什么问题?

c# - 每层的 MVVM 角色

c# - 将文本附加到富文本框的最快方法?