def get_text_calendar_dates(date1, date2, cols=3):
""" Get array of datetimes between two dates suitable for formatting """
"""
The return value is a list of years.
Each year contains a list of month rows.
Each month row contains cols months (default 3).
Each month contains list of 6 weeks (the max possible).
Each week contains 1 to 7 days.
Days are datetime.date objects.
"""
year1 = date1.year
year2 = date2.year
# start and end rows
row1 = int((date1.month - 1) / cols)
row2 = int((date2.month - 1) / cols) + 1
# generate base calendar array
Calendar = calendar.Calendar()
cal = []
for yr in range(year1, year2+1):
ycal = Calendar.yeardatescalendar(yr, width=cols)
if yr == year1 and yr == year2:
ycal = ycal[row1:row2]
elif yr == year1:
ycal = ycal[row1:]
elif yr == year2:
ycal = ycal[:row2]
cal.append(ycal)
return cal
评论列表
文章目录