Time Calculation Solution (Without days names) / Time calculation solución posible

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!

1 Like