How to iterate all days of year using Python
To iterate all days in a year using Python you can use this function snippet:
from collections import namedtuple
from calendar import monthrange
Date = namedtuple("Date", ["year", "month", "day"])
def all_dates_in_year(year=2019):
for month in range(1, 13): # Month is always 1..12
for day in range(1, monthrange(year, month)[1] + 1):
yield Date(year, month, day)
Usage example:
for date in all_dates_in_year(2019):
print(date)
This will print (excerpt):
Date(year=2019, month=1, day=1)
Date(year=2019, month=1, day=2)
Date(year=2019, month=1, day=3)
[...]
Date(year=2019, month=2, day=27)
Date(year=2019, month=2, day=28)
Date(year=2019, month=3, day=1)
[...]
Date(year=2019, month=12, day=29)
Date(year=2019, month=12, day=30)
Date(year=2019, month=12, day=31)
You can also install my Python3 library UliEngineering using sudo pip3 install -U UliEngineering and then use all_dates_in_year()
by importing it like this:
from UliEngineering.Utils.Date import *
Also see How to get number of days in month in Python