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 Functional Python Functional Workhorses Map and Filter

How to calculate if someone is over 13 in days?

I have tried many different ways to get this code to return whether the amount of the days given minus today is greater than or equal to 4745 days, the difference between the days of the datetime passed in and the days of 'today' would be greater than or equal to 4745.. but I'm not sure why this code isn't working.

birthdays.py
import datetime

birthdays = [
    datetime.datetime(2012, 4, 29),
    datetime.datetime(2006, 8, 9),
    datetime.datetime(1978, 5, 16),
    datetime.datetime(1981, 8, 15),
    datetime.datetime(2001, 7, 4),
    datetime.datetime(1999, 12, 30)
]

today = datetime.datetime.today()

def is_over_13(datetime):

  return datetime.days - today.days >= 4745

1 Answer

The problem is that you're trying to access a nonexistent property on the datetime.datetime object. You need to subtract the two dates before getting the days property.

def is_over_13(birthday):
  return (today - birthday).days >= 4745

It's not a good idea to name a variable the same thing as a module that you're importing, such as you're doing with datetime object in your is_over_13() function.

Thank you Cory! Your explanation was clear and helped me understand my mistake.