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
|
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
|
|
|
|
|
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
|
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
|
|
|
|
|