Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python Dates and Times in Python (2014) Dates and Times Timedelta Minute

Jason Smith
Jason Smith
8,668 Points

name 'timedelta' is not defined. Any hints? Help appreciated

i imported the library, so i'm not sure why it doesn't accept what i gave it.

minutes.py
import datetime
def minutes(datetime_1,datetime_2):
    seconds_1 = timedelta.totalseconds(datetime_1)
    seconds_2 = timedelta.totalseconds(datetime_2)
    return round((seconds_2 - seconds_1) / 60)

2 Answers

Jason Smith
Jason Smith
8,668 Points

where did you get the value 5 from?

5 was absolutely arbitrary; sorry for any confusion.

Two options for importing:

Option 1 (recommended): import the entire datetime module requires explicit datetime.timedelta below

 import datetime
def minutes(datetime_1,datetime_2):
    seconds_1 = datetime.timedelta.seconds(datetime_1)
...

Option 2: from the datetime module, importing only the timedelta class then timedelta on its own will work

from datetime import timedelta
def minutes(datetime_1,datetime_2):
    seconds_1 = timedelta.seconds(datetime_1)
...

Either way, seconds is a necessary attribute name, and totalseconds will not work.

Hi Jason,

I think I found the problem:

import datetime
seconds_1 = datetime.timedelta(seconds=5)

datetime is the module that contains the class timedelta. timedelta receives a parameter named seconds (among others)

You can see the docs here.