Python Dates and Times in Python Let's Build a Timed Quiz App Harder Time Machine

Help writing a time_machine function that takes an int and a string of 'minutes', 'hours', 'days' or 'years'

Write a function named time_machine that takes an integer and a string of "minutes", "hours", "days", or "years". This describes a timedelta. Return a datetime that is the timedelta's duration from the starter datetime.
import datetime

starter = datetime.datetime(2015, 10, 21, 16, 29)

# Remember, you can't set "years" on a timedelta!
# Consider a year to be 365 days.

## Example
# time_machine(5, "minutes") => datetime(2015, 10, 21, 16, 34)

def time_machine(num, time):
    if time == 'years':
        time = 'days'
        num = 365
    return starter + datetime.timedelta(**{time: num})

1 Answer

Louise St. Germain
Louise St. Germain
19,398 Points

Hi Kirome,

I think the issue is that if the user submits "years" to your function, you've hard-coded the number of days to 365, no matter how many years they specify. It should work if you use: num *= 365 (multiply the original num by 365 to turn years into days) instead of just num = 365.

Hope it works after this!

Hi Louise,

Thanks very much for the helped it worked! :)

I appreciate it