USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  CALCULAR TEMPO ENTRE 2 TEMPOS
Aledson
NATAL
RN - BRASIL
ENUNCIADA !
Postada em 17/04/2009 14:41 hs            
TENHO 2 TEMPOS
TEMPOINICIAL E O TEMPO DO SISTEMA OU SEJA MOSTRA 15:13:30:375
E EU TENHO O TEMPOFINAL QUE DE 15:14:00:171...
 
QUEM PODE ME AJUDAR EM RELAÇAO A ISSO...
   
APW
S.J.RIO PRETO
SP - BRASIL
ENUNCIADA !
Postada em 17/04/2009 16:34 hs         
olha tem essa função aqui... acho que é do macoratti ou aqui do vbweb mesmo... valeu...
vs usa assim...
Dim sDifTempo as string
 
sdiftempo = DifHoras(sValorDataInicial, sValorDataFinal)
 
msgbox sdiftempo
 
'a funcao pode ser colocada em um modulo
Public Function DifHoras(Entrada As Date, Saida As Date) As String    '____CALCULA A DIFERENÇA ENTRE DUAS HORAS______
    Dim h1, HDifRed As Integer
    Dim M1, MDifRed As Integer
    Dim H2 As Integer
    Dim M2 As Integer
    Dim Rh As Integer
    Dim Rm As Integer
    Dim Redonda As Integer
    Dim viA2 As Integer
   
    If IsNull(Entrada) Then
        Exit Function
    ElseIf IsNull(Saida) Then Exit Function
    End If
   
    h1 = Mid(Entrada, 1, 2)
    M1 = Mid(Entrada, 4, 2)
    H2 = Mid(Saida, 1, 2)
    M2 = Mid(Saida, 4, 2)
   
    If h1 < H2 And M1 > M2 Then Rh = H2 - h1 - 1
        If H2 > h1 Then
            If M2 < M1 Then
                Rm = 60 - M1
                Rm = Rm + M2
            End If
       
        If M2 > M1 Then
            Rh = H2 - h1
            Rm = M2 + M1
        End If
       
        If Rm > 60 Then
            Rm = 60 - M1
            Rm = Rm + M2
            Rm = Rm - 60
        End If
       
        If Rm = 60 Then
            Rm = 0
        End If
       
        If Rm = 0 Then
            If H2 > h1 Then
                Rh = H2 - h1
                Rm = 0
            End If
        End If
    End If
   
    If H2 < h1 Then
        If M2 < M1 Then
            Rm = 60 - M1
            Rm = Rm + M2
            Rh = H2 + 24
            Rh = Rh - h1 - 1
        End If
        If M2 > M1 Then
            Rh = H2 + 24
            Rh = Rh - h1
            Rm = M2 - M1
        End If
        If Rm > 60 Then
            Rm = 60 - M1
            Rm = Rm + M2
            Rm = Rm - 60
        End If
        If Rm = 60 Then
            Rm = 0
        End If
        If Rm = 0 Then
            If H2 < h1 Then
                Rh = H2 + 24
                Rh = Rh - h1
                Rm = 0
            End If
        End If
    End If
   
    If H2 = h1 Then
        If M2 < M1 Then
            Rh = H2 + 24
            Rh = Rh - h1 - 1
            Rm = 60 - M1
            Rm = Rm + M2
        End If
        If M2 > M1 Then
            Rh = H2 - h1
            Rm = M2 - M1
        End If
    End If
    If h1 = H2 And M1 = M2 Then
        Rh = 24
        Rm = 0
    End If
    If Rh = 0 Then Rh = Rh * -1
    If Rm = 0 Then Rm = Rm * -1
    If Rh > 24 Or Rm > 60 Then MsgBox "Informe um horário válido!", vbExclamation, "Atenção!"
    If M1 >= 60 Or M2 >= 60 Or h1 > 24 Or H2 > 24 Then MsgBox "Informe um horário válido!", vbExclamation, "Atenção!"
   
    DifHoras = Format(Rh, "00") & ":" & Format(Rm, "00")
End Function
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 17/04/2009 17:12 hs            
se fosse a hora normal seria desta forma
 
Private Sub Command1_Click()
MsgBox DateDiff("s", "15:13:30", "15:14:00")
End Sub
 
 
 
 
TÓPICO EDITADO
 
Aledson
NATAL
RN - BRASIL
Postada em 17/04/2009 17:19 hs            
cara... o grande problema de tudo e o segundo e milesimos...
to fazendo um sistema para controle de kart...
com timer da diferença de micro pra micro...
ta complecado...
     
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 17/04/2009 19:16 hs            
Bom colega não se se conseguiu, mas fiz este código pra você
 
veja a função
 
Public Function TempoDecorrido(T1 As String, T2 As String) As String
Dim H As Integer, M As Integer, S As Integer, MS As Integer
Dim Hora1() As String
Dim Hora2() As String
Dim Tempo1 As Date
Dim Tempo2 As Date
Hora1() = Split(T1, ":")
Hora2() = Split(T2, ":")
Tempo1 = Hora1(0) & ":" & Hora1(1) & ":" & Hora1(2)
Tempo2 = Hora2(0) & ":" & Hora2(1) & ":" & Hora2(2)
H = DateDiff("s", Tempo1, Tempo2) / 360
M = DateDiff("s", Tempo1, Tempo2) / 60
S = DateDiff("s", Tempo1, Tempo2)
If Hora1(3) > Hora2(3) Then
MS = ((1000 - CInt(Hora1(3))) + CInt(Hora2(3)))
S = S - 1
Else
MS = (CInt(Hora2(3)) - CInt(Hora1(3)))
End If
TempoDecorrido = Format((H & ":" & M & ":" & S), "hh:nn:ss") & ":" & Format(MS, "000")
End Function

 

'para usar

 


Private Sub Command1_Click()
MsgBox TempoDecorrido("15:13:30:375", "15:14:00:171")
'o resultado será 00:00:29:796
End Sub
 
ela vai retornar o valor em milessegundos
 
veja se funciona
 
e boa sorte
 
 
TÓPICO EDITADO
 
Aledson
NATAL
RN - BRASIL
ENUNCIADA !
Postada em 17/04/2009 20:16 hs            
TREZE.
 
cara a funcao rodou legal... mas achei um erro e n consegui rodar...
e o seguinte.. na hr q passa 1 minuto ele marca errado...
o correto era assim ( 01:01:111 ) mas ele ta marcando assim ( 01:61:111 )
MsgBox TempoDecorrido("19:20:45:555", "19:21:46:666")

vlw.. pela força... desde  ja muito obrigado...
TÓPICO EDITADO
 
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página