La Web del Programador: Comunidad de Programadores
 
    Pregunta:  49252 - COMO PUEDO CALCULAR LA DIFERENCIA HORARIA EN PASCAL
Autor:  mary perez
les cuento tengo que realizar un programa que dado dos horas de llegada, calcule la diferencia horaria entre esas dos horas, el problema es que las variables de las horas tienen que ser integer

  Respuesta:  Miguel Salas
Tienes que repasar un poquito las operaciones sexagesimales (no confundir con la hexadecimal que es un sistema numérico), tendrás tambien que utilizar la división para números enteros (DIV y MOD) que te da como resultados el cociente y residuo respectivamente.

Puedes convertir la hora de llegada a un valor numérico entero único, lo que equivale a convertir una hora dada a segundos:

Ejemplo:

Hora de salida (hh:mm:ss): 10:45:13 = (10*3600)+(45*60)+13 = 38713 segundos
Hora de llegada(hh:mm:ss): 13:12:25 = (13*3600)+(12*60)+25 = 47585 segundos

De esta manera al mayor le restas el menor y te da 8832 y enseguida realizas las operaciones de manera inversa utilizando DIV y MOD

8832 DIV 3600 = 2 horas y sobran
8832 MOD 3600 = 1632 segundos

ahora

1632 DIV 60 = 27 minutos y sobran
1632 MOD 60 = 12 segundos

Por loq ue la diferencia es de 2 Horas 27 Minutos y1 2 Segundos

Puedes comprobar tus resultados con exel, dandole el formato de horas a las celdas y restádolas como cualquier otro número, de hecho así maneja las horas y las fechas Excel

Deseo sea de utilidad, hasta pronto...!