Calcular diferencia de horas y minutos entre un inicio y un final en access

Os escribo porque he intentado llevar a código un calculo de diferencia de horas/minutos entre un horario de entrada y un horario de salida y me ha sido casi imposible.

La lógica es sencilla (y creo que muy trillada): DiferenciaHorario= [Hora Inicio]-[Hora Fin]

¿Alguna idea funcional?

2 respuestas

Respuesta
3

Si los dos tiempos distan entre sí menos de 24 horas, lo puedes hacer mucho más sencillo que lo que te propone Icue (que también es una forma perfectamente válida) usando la resta directa y formateando el resultado:

DiferenciaHorario= Format([Hora Inicio]-[Hora Fin],"hh:nn:ss")

Y si lo quieres sin segundos:

DiferenciaHorario= Format([Hora Inicio]-[Hora Fin],"hh:nn")

Un saludo.


     bit.ly/ForoNkSv 

¡Gracias! ¡Ha funcionado correctamente!

¿Y para años es igual?

Si quieres restar años, meses días, horas... y que el resultado sean años, meses... tienes la función DifFecha() https://support.office.com/es-es/article/datediff-funci%C3%B3n-e6dd7ee6-3d01-4531-905c-e24fc238f85f


Sveinbjorn El Rojo, ¿tienes algún manual hecho para ampliar lo dicho? Web Neckkito Access hay una entrada tuya al respecto pero la URL no funciona.

La web de Neckkito cambió de dominio, a ver si va a ser por eso que no te funciona... La nueva url es: http://neckkito.xyz/nck/

De todas formas, si me dices que ejemplo es el que no te funciona, miro de pasártelo de nuevo.

Respuesta
2

Los ordenadores no trabajan con horas, trabajan con números. Las hora, minutos, segundos, son decimales de día. Mira la imagen

Los nombres de los controles son HIN, HFN, HID, HFD y DifD. El origen del control equivales es

Pero si quieres trabajar con código, en el evento Después de actualizar del cuadro de texto HFN(equivale a tu hora HoraFinal) le pongo

Private Sub Hfn_AfterUpdate()
Diferencia = Int((CDec([Hfn]) - CDec([Hin])) * 24) & ":" & Int(((CDec([Hfn]) - CDec([Hin])) * 24 - (Int((CDec([Hfn]) - CDec([Hin])) * 24))) * 60)
End Sub

Con lo cual, cuando escribo la hora final

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas