Create a simple timer to count seconds, minutes and hours

后端 未结 4 912
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-07 15:47

I\'m trying to create a pretty simple program that basically is a timer. I have three sets of labels, lbl_seconds, lbl_minutes and lbl_hours

相关标签:
4条回答
  • 2021-01-07 16:03

    Use one timer and in event sub change value of your labels.

    You need one timer and three counter for seconds, minutes and hours.

    Count minutes, then modulo minutes / 60, if return 0 then start count minutes.
    Modulo minutes/60, if return 0 then start count hours.

    0 讨论(0)
  • 2021-01-07 16:12

    I think you need something of this sort

    Public Function GetTime(Time as Integer) As String
        Dim Hrs        As Integer  'number of hours   '
        Dim Min        As Integer  'number of Minutes '
        Dim Sec        As Integer  'number of Sec     '
    
        'Seconds'
        Sec = Time Mod 60
    
        'Minutes'
        Min = ((Time - Sec) / 60) Mod 60
    
        'Hours'
        Hrs = ((Time - (Sec + (Min * 60))) / 3600) Mod 60
    
        Return Format(Hrs, "00") & ":" & Format(Min, "00") & ":" & Format(Sec, "00")
    End Function
    

    You pass the time (in seconds) you'd like to display on the label's text and the time will be formatted as you like it.

    e.g.

    lblTime.Text = GetTime(90)
    

    This will display 00:01:30 on the label.


    For reference, you can see this project I submitted on FreeVBCode some time ago. The only caveat is the project is in VB6. You should be able to open it in Visual Studio though.

    0 讨论(0)
  • 2021-01-07 16:15

    Here is an example of this

    Dim timercount As Integer = 60 'The number of seconds 
    Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
        Timer1.Interval = 1000 'The number of miliseconds in a second
        Timer1.Enabled = True 'Start the timer
    End Sub
    
    Private Sub btnReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReset.Click
        Timer1.Enabled = False 'Stop the timer
        timercount = 60 'Reset to 60 seconds
        lblOutput.Text = timercount.ToString() 'Reset the output display to 60
    End Sub
    
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        lblOutput.Text = timercount.ToString() 'show the countdown in the label
        If timercount = 0 Then 'Check to see if it has reached 0, if yes then stop timer and display done
            Timer1.Enabled = False
            lblOutput.Text = "Done"
        Else 'If timercount is higher then 0 then subtract one from it
            timercount -= 1
        End If
    End Sub
    
    0 讨论(0)
  • 2021-01-07 16:16

    Start off by adding a timer. Call it whatever you like, in this example I will be keeping it as Timer1. Add a label and set the text as: 00:00.

    In the code after the class has been set (usually it is Public Class Form1) make a variable as a stopwatch: Dim stopwatch As New Stopwatch

    In the timer tick event code, put the following: (Please note that my 00:00 label is called Label1)

    Label1.Text = String.Format("{0}:{1}:{2}", watch.Elapsed.Hours.ToString("00"), watch.Elapsed.Minutes.ToString("00"), watch.Elapsed.Seconds.ToString("00"))
    
    0 讨论(0)
提交回复
热议问题