none
Como hacer un contador hacia atrás que lleve horas minutos y segundos en visual .net RRS feed

  • Pregunta

  • Hola como están todos estoy desarrollando un a pequeña aplicación en visual.net

    de un contador hacia atrás que lleve hora minutos y segundo la cual me seria de mucha ayuda su cooperación

     en mi proyecto tengo tres texbox(hora minuto segundo) donde pongo el tiempo que va retroceder

    tengo 3 lable donde carga las hora minutos segundo  que le paso por el texbox

    tres timer

    este es código para segundo pero no se como hacer para minuto y hora

     Contador_ = Contador_ - 1
     LblSegundos.Text = Contador_
    
            If Contador_ = 0 Then
                Timer1.Enabled = False
            End If

    Ayuda gracias

    martes, 22 de agosto de 2017 16:01

Respuestas

  • Si no buscas extrema precisión puedes mantener la idea de hacerlo mediante la clase Timer, por ejemplo:

    Dim StartTime As New TimeSpan
    
    Private Sub btnStartTimer_Click(sender As Object, e As EventArgs) Handles btnStartTimer.Click
    
    	Dim Hour, Minute, Second As Integer
    
    	Int32.TryParse(txtHour.Text, Hour)
    	Int32.TryParse(txtMinute.Text, Minute)
    	Int32.TryParse(txtSecond.Text, Second)
    
    	StartTime = New TimeSpan(Hour, Minute, Second)
    
    	lblHour.Text = Today.Add(StartTime).ToString("HH")
    	lblMinute.Text = Today.Add(StartTime).ToString("mm")
    	lblSecond.Text = Today.Add(StartTime).ToString("ss")
    
    	Timer1.Interval = 1000
    	Timer1.Start()
    
    	AddHandler Timer1.Tick, AddressOf Timer1_Tick
    
    End Sub
    
    Private Sub Timer1_Tick(sender As Object, e As EventArgs)
    
    	StartTime = StartTime.Subtract(New TimeSpan(0, 0, 1))
    
    	If StartTime.TotalSeconds < 0 Then
    		Timer1.Stop()
    	Else
    		lblHour.Text = Today.Add(StartTime).ToString("HH")
    		lblMinute.Text = Today.Add(StartTime).ToString("mm")
    		lblSecond.Text = Today.Add(StartTime).ToString("ss")
    	End If
    
    End Sub
    
    Private Sub btnFinishTimer_Click(sender As Object, e As EventArgs) Handles btnFinishTimer.Click
    
    	Timer1.Stop()
    
    End Sub


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    martes, 22 de agosto de 2017 17:38

Todas las respuestas

  • Si no buscas extrema precisión puedes mantener la idea de hacerlo mediante la clase Timer, por ejemplo:

    Dim StartTime As New TimeSpan
    
    Private Sub btnStartTimer_Click(sender As Object, e As EventArgs) Handles btnStartTimer.Click
    
    	Dim Hour, Minute, Second As Integer
    
    	Int32.TryParse(txtHour.Text, Hour)
    	Int32.TryParse(txtMinute.Text, Minute)
    	Int32.TryParse(txtSecond.Text, Second)
    
    	StartTime = New TimeSpan(Hour, Minute, Second)
    
    	lblHour.Text = Today.Add(StartTime).ToString("HH")
    	lblMinute.Text = Today.Add(StartTime).ToString("mm")
    	lblSecond.Text = Today.Add(StartTime).ToString("ss")
    
    	Timer1.Interval = 1000
    	Timer1.Start()
    
    	AddHandler Timer1.Tick, AddressOf Timer1_Tick
    
    End Sub
    
    Private Sub Timer1_Tick(sender As Object, e As EventArgs)
    
    	StartTime = StartTime.Subtract(New TimeSpan(0, 0, 1))
    
    	If StartTime.TotalSeconds < 0 Then
    		Timer1.Stop()
    	Else
    		lblHour.Text = Today.Add(StartTime).ToString("HH")
    		lblMinute.Text = Today.Add(StartTime).ToString("mm")
    		lblSecond.Text = Today.Add(StartTime).ToString("ss")
    	End If
    
    End Sub
    
    Private Sub btnFinishTimer_Click(sender As Object, e As EventArgs) Handles btnFinishTimer.Click
    
    	Timer1.Stop()
    
    End Sub


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    martes, 22 de agosto de 2017 17:38
  • BRO PERO EL CONTADOR VA  RESTANDO DE DOS

    COMO LE DIGO QUE RESTE DE UNO EN UNO

    martes, 22 de agosto de 2017 17:52
  • En el código propuesto yo veo que la resta se produce sobre una instancia de tiempo de un segundo, no de dos segundos como mencionas. Revisa tu código, es posible que el evento Tick de la clase Timer se encuentre instalado por duplicado debido al código que has venido escribiendo.


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    martes, 22 de agosto de 2017 18:09
  • Gracias Buen dia

    martes, 22 de agosto de 2017 18:16