Tell us what’s happening:
I don’t know why this isn’t working for 3, 5, 6, 7, 9 ,10
Your code so far
def add_time(start, duration, starting_day=None):
# Split Start Time and AM/PM and Split Hours and Minutes
start_time, AMPM = start.split()
start_hours, start_minutes = map(int, start_time.split(":"))
# Split Duration
duration_hours, duration_minutes = map(int, duration.split(":"))
# Add time based on AMPM
if AMPM == "PM":
start_hours += 12
# Add time
total_minutes = start_minutes + duration_minutes
total_hours = start_hours + duration_hours
# Change minutes over 60
if total_minutes >= 60:
total_hours += total_minutes // 60
total_minutes = total_minutes % 60
# Change hours over 24
days = total_hours // 24
time_hours = total_hours % 24
# Change Time Back to AMPM
if time_hours >= 12:
final_AMPM = "PM"
if time_hours > 12:
time_hours -= 12
else:
final_AMPM = "AM"
if time_hours == 0:
time_hours = 12 # Midnight case (12:00 AM)
# Days Later
if days == 1:
days_later = "(next day)"
elif days > 1:
days_later = f"({days} days later)"
else:
days_later = ""
# Add 0 to minutes if under 10
formatted_minutes = f"{total_minutes:02d}"
# Day of the week (if provided)
if starting_day:
starting_day = starting_day.capitalize()
days_of_week = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
# Get index
day_index = days_of_week.index(starting_day)
index = (day_index + days) % 7
final_day = days_of_week[index]
else:
final_day = ""
# Create new_time
new_time = f"{time_hours}:{formatted_minutes} {final_AMPM} {final_day} {days_later}".strip()
return new_time
print(add_time('3:30 PM', '24:00', 'Monday'))
Your browser information:
User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
Challenge Information:
Build a Time Calculator Project - Build a Time Calculator Project