Welcome to the Treehouse Community

The Treehouse Community is a meeting place for developers, designers, and programmers of all backgrounds and skill levels to get support. Collaborate here on code errors or bugs that you need feedback on, or asking for an extra set of eyes on your latest project. Join thousands of Treehouse students and alumni in the community today. (Note: Only Treehouse students can comment or ask questions, but non-students are welcome to browse our conversations.)

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and a supportive community. Start your free trial today.

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.