CRONOMETRO
Estou tendo fazer um cronometro regressivo com 3 digitos na hora mas, nao estou conseguind dando programo para ter 101:00:00 horas ele mostra a seguinte hora 1111:00:00 mas quando entra no 99 ele fica normal, onde será que esta o erro ?
aqui tem uma forma
coloca um timer de interval = 1000
Option Explicit
Private Tempo As Long
Private Sub Form_Load()
Tempo = 101 * CLng(60 * 60)
End Sub
Private Sub Timer1_Timer()
Tempo = Tempo - 1
Caption = SegToHora(Tempo)
End Sub
Private Function SegToHora(ByVal STH As String) As String
Dim Hora As Double
Dim Minutos As Double
Dim Valor As Double
Dim Segundos As String
If IsNumeric(STH) = False Then Exit Function
Valor = CDbl(STH)
'Transforma valor em hh:mm:ss
Hora = Format((Valor \ 3600), "0#")
Minutos = Format(((Valor Mod 3600) \ 60), "0#")
Segundos = Format(((Valor Mod 3600) Mod 60), "0#")
If Hora < 0 Then
Hora = Hora * (-1)
End If
If Minutos < 0 Then
Minutos = Minutos * (-1)
End If
If Segundos < 0 Then
Segundos = Segundos * (-1)
End If
SegToHora = Format(Hora, "0#") & ":" & Format(Minutos, "0#") & ":" & Format(Segundos, "0#")
End Function
coloca um timer de interval = 1000
Option Explicit
Private Tempo As Long
Private Sub Form_Load()
Tempo = 101 * CLng(60 * 60)
End Sub
Private Sub Timer1_Timer()
Tempo = Tempo - 1
Caption = SegToHora(Tempo)
End Sub
Private Function SegToHora(ByVal STH As String) As String
Dim Hora As Double
Dim Minutos As Double
Dim Valor As Double
Dim Segundos As String
If IsNumeric(STH) = False Then Exit Function
Valor = CDbl(STH)
'Transforma valor em hh:mm:ss
Hora = Format((Valor \ 3600), "0#")
Minutos = Format(((Valor Mod 3600) \ 60), "0#")
Segundos = Format(((Valor Mod 3600) Mod 60), "0#")
If Hora < 0 Then
Hora = Hora * (-1)
End If
If Minutos < 0 Then
Minutos = Minutos * (-1)
End If
If Segundos < 0 Then
Segundos = Segundos * (-1)
End If
SegToHora = Format(Hora, "0#") & ":" & Format(Minutos, "0#") & ":" & Format(Segundos, "0#")
End Function
Tópico encerrado , respostas não são mais permitidas