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

Damien Blasko
Damien Blasko
8,517 Points

's' is an invalid keyword for this function. Why? Must I create a complicated branching structure for this function?

There must be a better, and more concise way, to create this function, than to construct complex branching structures, which is my only alternative if I cannot use an argument to the function as a named input variable to datetime.timedelta

Can anyone offer any insight?
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(i, s):
    my_timedelta = datetime.timedelta(s=i)
    return starter + my_timedelta

1 Answer

Steven Parker
Steven Parker
203,989 Points

I'm not sure what you mean by "complicated branching structure", but the only special case you need to account for is when the specified units are "years". So you will probably need one conditional test.