Python - Cómo restar cadenas de tiempo HH:MM:ss por medio de un input y sacar la diferencia

 
Vista:
sin imagen de perfil

Cómo restar cadenas de tiempo HH:MM:ss por medio de un input y sacar la diferencia

Publicado por Derek (2 intervenciones) el 17/05/2020 22:41:14
Estoy empezando en Python, y trato de hacer un programa que mediante input me pida la hora de inicio: después la hora final y por último que haga la resta de final - inicio pero en formato HH:MM:ss
ejemplo:
Hora inicial: : : ↼ nótese que se deja los puntos para que el usuario solo asigne números
Hora final: : : ↼para que el usuario solo ponga números y el programa separé solo las horas minutos y segundos
Que al final reste hora final - hora inicial
Hora inicial: 10:20:30
Hora final: 11:20:30
Tiempo transcurrido: 01:00:00
Y que al final pueda cobrar tiempos ejemplo
De 00:00:00 a 15:00:00 el costo sea $0.00
De 15:01:00 a 30:00:00 el costo sea $8.00
De 30:01:00 a 45:00:00 el costo sea $12.00
De 15:01:00 a 30:00:00 el costo sea $16.00
Y así sucesivamente, la verdad no encuentro como introducir ese input y lo que hice fue esto:
Convertí HH: mm a segundos

1
2
3
4
5
6
7
8
dias = int(input("Dia Inicio:"))
horas = int(input("Hora Inicio:"))
minutos = int(input("Minutos Inicio:"))
segundos = int(input("Segundos Inicio:"))
segundos += dias * 24 * 60 * 60
segundos += horas *60 * 60
segundos += minutos * 60
print("Total Segundos: {}".format(segundos))

Convertí segundos a HH:MM

1
2
3
4
5
minutos = segundos // 60
segundos_resto = segundos % 60
horas = minutos // 60
minutos_resto = minutos % 60
print("Tiempo: ", horas, "h,", minutos_resto, "m,", segundos_resto, "s")

Pone la hora actual

1
2
hora = datetime.now().time()
print("Tiempo Final:",hora)
Y no sé cómo restar HH:MM:ss y hacer sus respectivos cobros por tiempo, necesito su ayuda por favor.
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 joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Cómo restar cadenas de tiempo HH:MM:ss por medio de un input y sacar la diferencia

Publicado por joel (901 intervenciones) el 18/05/2020 08:25:44
Hola Dereck, creo que lo has hecho de la manera correcta!!! has convertido todo a segundos, por lo que ya sabes el costo a cobrar.

Una vez lo tienes todo a segundos, puedes hacer la resta con la fecha actual, no?

No me queda muy clara tu duda... no se exactamente que valor quieres conseguir... si nos puedes comentar con mas detalle...
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

Cómo restar cadenas de tiempo HH:MM:ss por medio de un input y sacar la diferencia

Publicado por Derek (2 intervenciones) el 19/05/2020 19:00:40
Hola Joel lo que no se es cómo restar las HH:MM:ss
porque en mi primer resultado don ves que hago un input de horas minutos y segundos, en Hora de Inicio si hago el input, y en hora final no hago un input solo mando a llamar hora actual, entonces cuando trato de restar me aparece error
1
2
Tiempo_restante = Tiempo Final - Tiempo
Print(Tiempo_restante)
Me da error, además de que cuando convierto segundos a horas me pone el formato 5h:34m:20s en ves de solo 5:34:20 no se cómo restar me aparece error al compilar
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