Access - Cálculos horarios

 
Vista:

Cálculos horarios

Publicado por damasc (1 intervención) el 01/08/2003 13:35:49
Estoy haciendo una base de datos con cálculos horarios y me encuentro con el siguente problema:

Aplicando la siguiente función: =Hora([Horas_diarias])*[Dias_laborables] & ":" & Formato((Minuto([Horas_diarias])*[Dias_laborables]);"00"), al multiplicar 7:10 horas diarias por 7 dias laborables me da 49:70 y no 50:10, como deberia ser.

También me encuentro con el problema, al sumar horas y minutos, que cuando supera las 24 h. se pone a cero, es decir, si son 26 h. pone 2 h.

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cálculos horarios

Publicado por Pancho (149 intervenciones) el 04/08/2003 19:24:51
Hola

el error esta en que debes calcular la diferencia transformando todo a segundos, resta los dos valores y aplicas la formula que te doy con la funcion ejemplo mas abajo. la diferencia te la da exacta hasta el segundo espero que te sirva

Function TimeDiff(ByVal FechaHora1 As Date, ByVal FechaHora2 As Date) As Variant
Dim tFH As Date
Dim nSec As Long
Dim nHH As Long
Dim nMM As Long
Dim nSS As Long
Dim tf(2) As Long
'No hace falta pero por si acaso!!!
If FechaHora1 > FechaHora2 Then
tFH = FechaHora1
FechaHora1 = FechaHora2
FechaHora2 = tFH
End If
'Todo se convierte en segundos
nSec = DateDiff("s", FechaHora1, FechaHora2)

'Tiempo Transcurrido calculado hasta el segundo
nHH = nSec \ 3600
nSec = nSec - (nHH * 3600)
nMM = nSec \ 60
nSec = nSec - (nMM * 60)
nSS = nSec

Debug.Print nHH, nMM, SS, nSec

tf(0) = nHH: tf(1) = nMM: tf(2) = nSS

TimeDiff = tf()

End Function

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar