Access - Calcular horas entre fechas de más de 24 horas.

   
Vista:

Calcular horas entre fechas de más de 24 horas.

Publicado por lute (3 intervenciones) el 18/02/2013 14:39:19
Hola.
Tengo una base de datos para cronometrar el tiempo que tarda un participante en hacer la carrera. Tengo puesto un campo Dorsal que después de actualizar resta la Hora de Salida a la Hora de LLegada con lo que me sale el tiempo. El problema viene cuando pasa de las 24 horas, me vuelve a cero y casi todos los participantes echarán más de 24 horas. Cómo puedo hacer que me calcule 25, 26 ó 27 horas?
Muchas gracias por vuestro tiempo.
Un saludo.
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
Imágen de perfil de Neckkito

Calcular horas entre fechas de más de 24 horas.

Publicado por Neckkito (1104 intervenciones) el 18/02/2013 20:24:05
Hola!

Una primera opción sería trabajar con fechas.Si creas un campo con la fecha de salida y otro con la fecha de llegada podrías decirle que discrimine a la hora de hacer el cálculo.

El código, puesto en abstracto, podría ser:

If fechaSalida=fechaLlegada then
Tiempo=HoraLlegada-HoraSalida
Else
Tiempo=24:00:00 - HoraSalida + HoraLlegada
End if

Otra idea, si no quieres trabajar con fechas, es crearte un campo Si/No, por ejemplo, [DiaSiguiente], con valor por defecto FALSO, y marcarlo si la llegada es al día siguiente.

En este caso, el código podría quedarte así (en abstracto)

If DiaSiguiente=False then
Tiempo=HoraLlegada-HoraSalida
Else
Tiempo=24:00:00 - HoraSalida + HoraLlegada
End if

A ver si con esto puedes arreglar una solución.

Saludos,


http://neckkito.siliconproject.com.ar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Norberto

Calcular horas entre fechas de más de 24 horas.

Publicado por Norberto (432 intervenciones) el 19/02/2013 14:16:05
Hola.

Por si te sirve.

Excel tiene un bonito formato de Fecha/Hora que es [HH]:mm:ss que hace que cuando un valor tiene más de 24 horas no se desperdicien éstas sino que se añadan pudiéndose mostrar 47:15:03. En ausencia del mismo en Access he creado la siguiente función:

1
2
3
4
5
6
7
8
9
10
Public Function FormatHHH(Hora As Date, Optional Segundos As Boolean = False) As String
    Dim HH As Long, MM As Integer, SS As Integer
 
    HH = Int(Hora) * 24 + Hour(Hora)
    MM = Minute(Hora)
    SS = Second(Hora)
 
    FormatHHH = Format(HH, "00") & ":" & Format(MM, "00") & IIf(Segundos, ":" & Format(SS, "00"), "")
 
End Function


Debes de pasarle como parámetro la diferencia entre FechaLlegada + HoraLlegada y FechaSalida + HoraSalida.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Calcular horas entre fechas de más de 24 horas.

Publicado por lutecom (3 intervenciones) el 19/02/2013 16:10:00
Hola.
Bueno, ya lo he podido solucionar. Al final del número que resultaba de restar dos campos con el formato de Fecha General se iba multiplicando y dividiendo y al final sale. Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Calcular horas entre fechas de más de 24 horas.

Publicado por jose (741 intervenciones) el 21/02/2013 12:30:15
saludos


la forma de calcular las horas o los minutos es entre otras formas, esta

horas = DateDiff("h", fechainicial, fechaactual)

minutos = DateDiff("m", fechainicial, fechaactual)


yo personalmente calcularia los minutos y luego dividiendo por 60 sacar las horas

jose manuel desde El Astillero
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
Imágen de perfil de Neckkito

Calcular horas entre fechas de más de 24 horas.

Publicado por Neckkito (1104 intervenciones) el 21/02/2013 12:37:33
¡Qué curioso!

Una pregunta que ofrece tantas variadas, válidas y originales respuestas...

Creo que esta pregunta se merece un 10

Un saludo a todos!!!!

Neckkito
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

Calcular horas entre fechas de más de 24 horas.

Publicado por lute (3 intervenciones) el 21/02/2013 13:01:48
Hola.
Muchas gracias por todas vuestras respuestas. Como bien dice Neckkito, os mereceis un 10. Muchas gracias.
Os dejo la solución que al final encontré:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim Total_en_numero As Double
 Total_en_numero = (Me.Hora_llegada_provisional - Me.Hora_salida) * 24
 
Me.Total_horas = Int(Total_en_numero)
 
Dim Extraer_decimal_horas As Double
 Extraer_decimal_horas = Total_en_numero - Me.Total_horas
 
Dim Calcular_minutos As Double
Calcular_minutos = Extraer_decimal_horas * 60
 
Me.Total_minutos = Int(Calcular_minutos)
 
Dim Extraer_decimal_minutos As Double
Extraer_decimal_minutos = Calcular_minutos - Me.Total_minutos
 
Me.Segundos = Extraer_decimal_minutos * 60
 
Me.Tiempo_calculado = [Total_horas] & ":" & [Total_minutos] & ":" & [Segundos]


Un saludo y gracias por todo.
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

Calcular horas entre fechas de más de 24 horas.

Publicado por JAIRO IV (1 intervención) el 09/09/2014 21:28:56
Con todo el debido respeto esto habría sido más sencillo:

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