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

jun cheng wong
jun cheng wong
9,457 Points

Write a function named time_machine that takes an integer and a string of "minutes", "hours", "days", or "years". This d

I cannot figure out what's wrong with my code. Appreciate if anyone can help me
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(duration, unit):
    return starter + datetime.timedelta(unit = duration)

2 Answers

Mel Rumsey
.a{fill-rule:evenodd;}techdegree seal-36
Mel Rumsey
Treehouse Staff

Hey jun cheng wong For this challenge, we want to check some things in our time_machine function before we add the timedelta to the starter. We want to check if the unit is equal to minutes, hours, days, or years (days = duration * 365 since there are no years on a timedelta). Within each if/elif statement we need to set the offset equal to the datetime.timedelta(*=duration) where * = minutes, hours, or days accordingly.


    if unit == 'minutes':
        offset = datetime.timedelta(minutes=duration)
    elif unit == 'hours':
        offset = datetime.timedelta(hours=duration)

# and so on...

After we have set our offset equal to the correct units, we can then return the starter + offset

Hopefully this helps! :D