Actualmente me encuentro desarrollando una aplicación donde necesito calcular la diferencia entre dos horas, por ejemplo:
hora1 = 5:00 AM
hora2 = 3:00 AM
Sacando la diferencia entre hora1 y hora2 la diferencia sería de 2 horas.
Bueno esto es básicamente lo que necesito, el detalle esta en que en mi país (Venezuela) comúnmente se trabaja con horas en formato de 01:00 a 12:00 indicando si es AM o PM.
Ahora, para obtener la hora1, en un combo llamado Hora Inicial almaceno las horas de 01:00 a 12:00 y usando otro combo selecciono si es AM o PM. Lo mismo hago para obtener la hora2 almaceno las horas de 01:00 a 12:00 en un combo llamado Hora Final y con otro combo selecciono si esta hora es AM o PM. (Adjunto voy a dejar una imagen del formulario para que puedan visualizarlo).
Los combos con valores AM y PM los uso para transformar las horas a el formato de 24 horas conocido a nivel mundial y así poder hacer uso de la función "HourSpan". Por ejemplo, cuando selecciono 3:00 PM transformo la hora 3:00 a 15:00:00 y así sucesivamente con todas las horas que sean PM (02:00 PM = 14:00:00, etc), si son AM las dejo normal pues el formato AM es de 01:00 a 12:00.
Qué función en Delphi puedo usar para calcular la diferencia cuando por ejemplo seleccione:
hora1 = 3:00 PM
hora2 = 1:00 AM
Lo que seria calcular las horas de las tres de la tarde (15:00:00 en formato de 24 horas) a la una de la mañana, teniendo como resultado 10 horas de diferencia.
Actualmente estoy utilizando la función HourSpan a la cual le paso dos parámetros la hora1 y la hora2, esta función me realiza los cálculos perfectamente pero solo si la hora1 es AM y la hora2 PM del resto me regresa valores que no son.
Como podría solucionar este caso, ya que se me exige que trabaje con el formato de hora 01:00 a 12:00 AM y PM.