How do you loop through an entire year showing each day's date?

Recommended Answers

You are dealing with date objects so it is best to use module datetime ...

import datetime

# pick a year
year = 2006

# create date objects
begin_year = datetime.date(year, 1, 1)
end_year = datetime.date(year, 12, 31)
one_day = datetime.timedelta(days=1)

print "These are all the dates …
Jump to Post

Hi Ene, looks like you are working on Friday the 13th project. It took me a while, but I solved it. I can give you a hint, replace the line

print next_day

with this expanded line

print next_day, "day of week =", next_day.weekday()

The …

Jump to Post

All 5 Replies

You are dealing with date objects so it is best to use module datetime ...

import datetime

# pick a year
year = 2006

# create date objects
begin_year = datetime.date(year, 1, 1)
end_year = datetime.date(year, 12, 31)
one_day = datetime.timedelta(days=1)

print "These are all the dates of %d:" % year
next_day = begin_year
for day in range(0, 366):  # includes potential leap year
    if next_day > end_year:
        break
    print next_day
    # increment date object by one day
    next_day += one_day

Thanks, that works well. Now I need a hint, how do I check if the day is a Friday?

Hi Ene, looks like you are working on Friday the 13th project. It took me a while, but I solved it. I can give you a hint, replace the line

print next_day

with this expanded line

print next_day, "day of week =", next_day.weekday()

The week starts with Monday = 0 that means Friday = 4
Have fun!

Thanks Henri,

I needed not only the day of the week, but also the day of the month, so I searched the Python code snippets and found an old snippet from vegaseat called "Date and Time handling in Python" at:
http://www.daniweb.com/code/snippet218.html

He talks about the timetuple, and this tuple contains both data. So I put this in the days of year loop:

# timetuple = (year,month,day,hour,min,sec,weekday(Monday=0),yearday,dls-flag)
    day_of_month = next_day.timetuple()[2]
    day_of_week = next_day.timetuple()[6]
    # Friday is 4th day of the week
    if day_of_week == 4 and day_of_month == 13:
        print next_day

and it works. My first real project! Smooth!

OK Ene,
pretty smooth! I used

if next_day.weekday() == 4 and next_day.day == 13:

after reading through help("datetime")

How did you know my first name was Henri?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of 1.20 million developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.