'''
Solicita al usuario dos horas como números enteros con forma hhmmss, e informa la diferencia entre ellas en horas, minutos y segundos.
Si la segunda hora es menor que la primera, se asume que la segunda hora es de un día posterior (la diferencia puede ser de hasta 36
horas).

Versión 2: se descomponen las h1 y h2 en hh1, mm1, ss1, hh2, mm2, ss2

Casos de análisis:
1- 190511 y 210512 (la primer hora es menor que la segunda)
   21-19=2 hora
   5-5=0 minutos
   12-11=1 segundos

   2 horas 1 segundo
   

2- 210512 y 190511 (la primera es mayor que la segunda)
   24-21=3 horas
   0-5=-5 --> se resta 1 a horas y se suma 60 a los minutos negativos: 2 horas 55 minutos
   0-12=-12 --> se resta 1 a minutos y se suma 60 a segundos: 2 horas 54 minutos 48 segundos

   19-2=21 horas
   54+5=59 minutos
   48-11=59 segundos

   21 horas 59 minutos 59 segundos

3- 231500 y 004500
   24-23=1 hora
   0-15=-15 --> 0 horas 45 minutos
   0-0=0 segundos

   1+0=1 hora
   45+45=90 --> 1 hora 90-60=30 minutos
   0+0=0 segundos

'''
# PRÓLOGO
print('DIFERENCIA ENTRE DOS HORAS')
print()
print('Se solicitan dos horas distintas con formato hhmmss')
print('Si la primera es mayor que la segunda se asume que la segunda corresponde al día siguiente')
print()

# Ingreso de datos por teclado
horaEntera1 = int(input('Ingrese primer hora: '))
horaEntera2 = int(input('Ingrese segunda hora: '))

# Inicializaciones
# convertir fechas enteras a fechas fraccionarias horaFrac1 y horaFrac2
hh1=horaEntera1//10000
mm1=(horaEntera1%10000)//100
ss1=horaEntera1%100

hh2=horaEntera2//10000
mm2=(horaEntera2%10000)//100
ss2=horaEntera2%100

# RESOLUCIÓN
# Diferencias
if horaEntera1<=horaEntera2:
    horas=hh2-hh1
    minutos=mm2-mm1
    segundos=ss2-ss1
else:
    horas=24-hh1
    minutos=-mm1
    segundos=-ss1

# Correcciones de diferencias si minutos o segundos son menores que 0
if segundos<0: # hay que restar un minuto para sumar 60 a los segundos
    minutos-=1 # equivale a minutos=minutos-1
    segundos+=60 # equivale a segundos=segundos+60

if minutos<0: # hay que restar una hora para sumar 60 a los minutos
    horas-=1
    minutos+=60

# Suma en caso de que horaEntera1 sea mayor que horaEntera2
if horaEntera1>horaEntera2:
    horas+=hh2
    minutos+=mm2
    segundos+=ss2

    # Correcciones de suma, si minutos o segundos son mayores que 59
    if segundos>59: # hay que restar 60 a los segundos y sumar 1 a minutos
        segundos-=60
        minutos+=1

    if minutos>59: # hay que restar 60 a minutos y sumar 1 a horas
        minutos-=60
        horas+=1

# EPÍLOGO
print('\nLa diferencia es', end=' ') # el parámetro end=' ' reemplaza el salto de línea por defecto de la función print por la impresión de un espacio
if horas>0:
    if horas>1: print(horas, 'horas', end=' ')
    else: print(horas, 'hora', end=' ')
if minutos>0:
    if minutos>1: print(minutos, 'minutos', end=' ')
    else: print(minutos, 'minuto', end=' ')
if segundos>0:
    if segundos>1: print(segundos, 'segundos')
    else: print(segundos, 'segundo')

input('\nPulse Enter para terminar.')
