Hi, wassup? I leave the code of how to solve the exercise: Time calculation. I miss the names of the days. How do you think I could optimize the code?
Hola, que tal? Dejo el codigo de como solucionar el ejercicio: Time calculation . Me faltaron los nombres de los días. Como creen que podria optimizar el codigo?
def add_time(start, duration):
a = start.split(" ") #separar start por "AM/PM"
#print(a)
b = duration.split(":") #separar duration por ":"
#print(b)
d = a[0].split(':') #separar start por ":"
#print(d)
c = d[0] #horas start
#print(c)
g = d[1] #minutos start
#print(d)
e = b[0] #horas add
#print(e)
f = b[1] #minutos add
#print(f)
h = a[1] #Adquirir ampm
amPm = h
horas_Start = c
min_Start = g
horas_Add = e
min_Add = f
total_Horas = int(horas_Start) + int(horas_Add)
total_Minutos = int(min_Start) + int(min_Add)
suma_Dias = 0
#print('Start: ' + horas_Start + ':' + min_Start + " " + amPm)
#print('Duration: ' + str(horas_Add) + ':' +min_Add)
#print('Total sin restar: ' + str(total_Horas) + ':' + str(total_Minutos))
if total_Minutos >= 60: # Si los minutos se pasan de 60,
total_Horas += total_Minutos // 60 # los paso a horas
total_Minutos %= 60 # y lo que queda, en minutos
if total_Minutos < 10:
total_Minutos = "0" + str(total_Minutos) #Esto es para agregar el "0" adelante de los minutos cuando tienen menos de 2 cifras.
while total_Horas >= 24:
total_Horas = total_Horas - 24
suma_Dias += + 1 #Este seria el contador de dias
if amPm == 'AM':
if int(total_Horas) >= 12:
amPm = 'PM'
elif amPm == 'PM':
if int(total_Horas) >= 12:
amPm = "AM"
suma_Dias += 1 #Acá switcheo de AM a PM
if total_Horas > 12:
total_Horas -= 12 #si las horas son mayores a 12 (por ejemplo 13) le resto 12 y el resultado son las horas del reloj
if total_Horas == 0: #Esto es medio por las dudas
total_Horas = 12
#if total_Horas < 10:
#total_Horas = "0" + str(total_Horas) #Este codigo al final no se usa, pero es para agregar el 0 en las horas que tienen 1 sola cifra
if suma_Dias == 1: #con este if, agrego las partes de texto tipo next day o days later
dias_Texto = ' (next day)'
elif suma_Dias > 1:
dias_Texto = " (" + str(suma_Dias) + ' days later)'
else:
dias_Texto = ""
new_time = str(total_Horas) + ":" + str(total_Minutos) + " " + str(amPm) + str(dias_Texto) #Bueno y esto ya es el resultado
#print('Total: ' + new_time)
return new_time
Thanks!
Gracias!