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

Dat Ngo
Dat Ngo
1,309 Points

Challenge Task 3

What's wrong with my code

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(dt):
    delta = today - dt
    return delta.days >= 4745

def date_string(dt):
    return dt.strftime("%B %d")

birth_dates = map(date_string, filter(is_over_13, birthdays))
Chris Freeman
Chris Freeman
Treehouse Moderator 67,762 Points

There may be a bug in the checker due to international local time verses the challenge checkers local time. I noticed that one of the dates in the sample data is 9 Aug 2006 which is exactly 13 years ago today! Please try your code tomorrow to see if it still works as is. If so, I'll file a bug report. Thanks for your patients!

2 Answers

Chris Freeman
MOD
Chris Freeman
Treehouse Moderator 67,762 Points

It is looking more like an international date time round off with the sample data 9 Aug 2006 date being very close to exactly 13 years old.

Update: It is a bug in the checker that has a hard coded expected value. As the second date moved passed 13 years ago from today's date the results of the map/filter will change.

A temporary work-around would be to change the data so that the second date is at least 4 days later than date you run the challenge.:

birthdays = [
    datetime.datetime(2012, 4, 29),
    # change line below to 
    datetime.datetime(2006, 8, 13),  # changed from (2006, 8, 9)
    datetime.datetime(1978, 5, 16),
    datetime.datetime(1981, 8, 15),
    datetime.datetime(2001, 7, 4),
    datetime.datetime(1999, 12, 30)
]

With this change, your code will pass the challenge!!

Richard A
PLUS
Richard A
Courses Plus Student 9,932 Points

Hi Chris Freeman , just to confirm your suspicions, I do believe this was a bug in the checker. I had this problem las week too. Going back to this challenge, I tried your solution and unfortunately, it didn't work. I did however change other values in the birthdays list to random values and only then did I finally pass this challenge.

Chris Freeman
Chris Freeman
Treehouse Moderator 67,762 Points

Unfortunately, my workaround fix "expired" on 9 Aug 2019, since today continuously moves. :-) A bug report has been filed.