Hi everyone, I’ve recently picked up python and I need some help with this assignment.

The methodology i thought of for this would be to split the input arguments into Hours, Minutes and do the corresponding additions. For the minutes, while the end result is greater than 60, I did a looped subtraction so that the end result will remain within 60. The number of loops would then be added to the hours. For the hours, similarly, I created a while loop to subtract the number of hours in a day till its within hours.

Somehow this doesn’t pass all 12 tests. Would appreciate help to understand why!

def add_time(starttime, duration, weekdayvalue=“not specified”):

starttime.split()

time_numbers=starttime.split()[0]

AM_PM=starttime.split()[1]

time_hours=int(time_numbers.split(":")[0])

time_mins=int(time_numbers.split(":")[1])

duration_hours=int(duration.split(":")[0])

duration_mins=int(duration.split(":")[1])

weekdayvalue = weekdayvalue.lower()

daysinweek = [“monday”,“tuesday”,“wednesday”,“thursday”,“saturday”,“sunday”]

if weekdayvalue != “not specified”:

daysindex = daysinweek.index(weekdayvalue)

#convert 12H to 24H format

if AM_PM == “PM”:

time_hours = time_hours + 12

#calculating the new minutes number & normalising it to within 60 minutes.

time_mins=int(time_mins)+int(duration_mins)

while time_mins >= 60:

time_mins = time_mins -60

time_hours=time_hours+1

#calculating the new hour number

time_hours=time_hours+duration_hours

#calculating whether the new hours becomes a new day

i=0

while time_hours >= 24:

time_hours = time_hours - 24

i=i+1

#if i > 1, then its next day.

if i == 0:

dayspast = “”

if time_hours >12:

time_hours = time_hours - 12

AM_PM = “PM”

```
else:
time_hours = time_hours
AM_PM = "AM"
```

elif i == 1:

dayspast = str("(next day)")

```
if weekdayvalue!="not specified":
daysindex= daysindex+1
if daysindex >7:
daysindex = 0
else:
daysindex=daysindex
if time_hours >12:
time_hours = time_hours - 12
AM_PM = "PM"
else:
time_hours = time_hours
AM_PM = "AM"
```

elif i > 1:

dayspast = “({} days later)”.format(i)

if weekdayvalue != “not specified”:

daysindex= daysindex+i

while daysindex >7:

daysindex = daysindex - 8

else:

daysindex=daysindex

if time_hours > 12:

time_hours = time_hours - 12

AM_PM = “PM”

else:

time_hours = time_hours

AM_PM = “AM”

time_mins=format(time_mins,“02”)

time_print=""

time_print=str(time_hours)+":"+time_mins)

```
#print(str(time_numbers))
```

if weekdayvalue != “not specified”:

return(time_print," “, AM_PM,”, “, daysinweek[daysindex].capitalize(),” “,dayspast)

else:

return(str(time_hours),”:",time_mins," ",AM_PM, dayspast)