
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
Convertí segundos a HH:MM
Pone la hora actual
Y no sé cómo restar HH:MM:ss y hacer sus respectivos cobros por tiempo, necesito su ayuda por favor.
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)
Valora esta pregunta


0