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 trialWilliam Keil
4,933 PointsHow 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.
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
Cory Madden
7,120 PointsThe 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.
William Keil
4,933 PointsWilliam Keil
4,933 PointsThank you Cory! Your explanation was clear and helped me understand my mistake.