Tell us what’s happening:
I am getting an output but it is in decimal places and not in a standard time format
Your code so far
def add_time(start, duration, weekday = False):
weekday_index = {'Monday': 0, 'Tuesday': 1, 'Wednesday': 2, 'Thursday': 3, 'Friday': 4, 'Saturday': 5, 'Sunday': 6}
weekday_array = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
duration_tuple = duration.partition(':')
duration_minutes = int(duration_tuple[2])
duration_hours = int(duration_tuple[0])
start_tuple = start.partition(':')
start_minutes_tuple = start_tuple[2].partition(' ')
start_hours = int(start_tuple[0])
start_minutes = int(start_tuple[0])
am_pm = start_minutes_tuple[2]
am_pm_switch = {'AM': 'PM', 'PM': 'AM'}
days_amount = int(duration_hours) / 24
end_minutes = start_minutes + duration_minutes
if end_minutes >= 60:
start_hours += 1
end_minutes = end_minutes % 60
amount_of_am_pm_switches = int((start_hours + duration_hours) / 12)
end_hours = start_hours + duration_hours
end_minutes = end_minutes if end_minutes > 9 else '0' + str(end_minutes)
end_hours = end_hours = 12 if end_hours % 12 == 0 else end_hours % 12
if am_pm == 'PM' and start_hours + (duration_hours % 12) >= 12:
days_amount += 1
am_pm = am_pm_switch[am_pm] if amount_of_am_pm_switches % 2 == 1 else am_pm
print(amount_of_am_pm_switches)
print(days_amount)
return_time = str(end_hours) + ':' + str(end_minutes) + ' ' + am_pm
if weekday:
weekday = weekday.lower()
weekday = weekday[0].upper() + weekday[1:]
index = int((weekday_index[weekday]) + days_amount) % 7
new_day = weekday_array[index]
return_time += ', ' + new_day
if days_amount == 1:
return return_time + ' ' + '(next day)'
elif days_amount < 2 and amount_of_am_pm_switches > 1:
return return_time +' ' + '(next day)'
elif days_amount >= 2:
return return_time +' (' + str(int(days_amount)) + 'days later'
add_time('3:30 PM', '2:12')
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