myusuf3 / delorean

Delorean: Time Travel Made Easy
http://delorean.rtfd.org/
MIT License
1.84k stars 128 forks source link

stops() skips february??? #99

Closed gordol closed 7 years ago

gordol commented 7 years ago
>>> import delorean
>>> import datetime
>>> end = datetime.datetime.today()
>>> start = end - datetime.timedelta(days=365)
>>> for stop in delorean.stops(freq=delorean.MONTHLY, count=12, timezone="US/Eastern", start=start, stop=end):
...   print "%s - %s" % (stop.datetime.year, stop.datetime.month)
...
2016 - 6
2016 - 7
2016 - 8
2016 - 9
2016 - 10
2016 - 11
2016 - 12
2017 - 1
2017 - 3
2017 - 4
2017 - 5
2017 - 6
>>>
gordol commented 7 years ago

Yep...

This is a bug in dateutil.

:man_facepalming:

>>> [x for x in rrule(MONTHLY, count=12, dtstart=datetime(2016,1,30))]
[datetime.datetime(2016, 1, 30, 0, 0), datetime.datetime(2016, 3, 30, 0, 0), datetime.datetime(2016, 4, 30, 0, 0), datetime.datetime(2016, 5, 30, 0, 0), datetime.datetime(2016, 6, 30, 0, 0), datetime.datetime(2016, 7, 30, 0, 0), datetime.datetime(2016, 8, 30, 0, 0), datetime.datetime(2016, 9, 30, 0, 0), datetime.datetime(2016, 10, 30, 0, 0), datetime.datetime(2016, 11, 30, 0, 0), datetime.datetime(2016, 12, 30, 0, 0), datetime.datetime(2017, 1, 30, 0, 0)]

It indeed skips right over february :(

gordol commented 7 years ago

https://github.com/dateutil/dateutil/issues/149