Finding all time periods for a given interval within a date range

Waldemar Osuch osuchw at ecn.ab.ca
Wed Aug 4 20:02:43 CEST 2004


Graeme Longman wrote:
> Hi everyone,
> 
> I was wondering if anyone has written some Python code which uses a start
> date and end date and a given interval (day, month or year) and outputs all
> the time periods for that range and interval.
> 
> For example you may wish to find all the months between the dates
> '2004-02-14' and '2004-08-04'. You would maybe use a function where you pass
> in those starting and ending dates and the interval 'month' and you'd get
> back a list of those months. I guess you would need to year part of the date
> too, so ['2004-02', '2004-03', '2004-04', '2004-05', '2004-06', '2004-07',
> '2004-08']. If you had passed in 'day' as the interval then you would be
> given back a list of all the days in those months.

Try using dateutil module by Gustavo Niemeyer found at:
https://moin.conectiva.com.br/DateUtil

from datetime import date
from dateutil.rrule import *
d1 = date(2004,2,14)
d2 = date(2004,8,4)
for d in rrule(MONTHLY, d1, until=d2):
     print d.year, d.month

2004 2
2004 3
2004 4
2004 5
2004 6
2004 7

Substitute MONTHLY with DAILY in the rrule and you will get list of days

Waldek



More information about the Python-list mailing list