2009-03-06 11 views
4

de la console IPython:dateutil.rrule.rrule.between() donne seulement des dates après maintenant

In [16]: b 
Out[16]: datetime.datetime(2008, 3, 1, 0, 0) 

In [17]: e 
Out[17]: datetime.datetime(2010, 5, 2, 0, 0) 

In [18]: rrule(MONTHLY).between(b, e, inc=True) 
Out[18]: 
[datetime.datetime(2009, 3, 6, 14, 42, 1), 
datetime.datetime(2009, 4, 6, 14, 42, 1), 
datetime.datetime(2009, 5, 6, 14, 42, 1), 
datetime.datetime(2009, 6, 6, 14, 42, 1), 
datetime.datetime(2009, 7, 6, 14, 42, 1), 
datetime.datetime(2009, 8, 6, 14, 42, 1), 
datetime.datetime(2009, 9, 6, 14, 42, 1), 
datetime.datetime(2009, 10, 6, 14, 42, 1), 
datetime.datetime(2009, 11, 6, 14, 42, 1), 
datetime.datetime(2009, 12, 6, 14, 42, 1), 
datetime.datetime(2010, 1, 6, 14, 42, 1), 
datetime.datetime(2010, 2, 6, 14, 42, 1), 
datetime.datetime(2010, 3, 6, 14, 42, 1), 
datetime.datetime(2010, 4, 6, 14, 42, 1)] 

Comment puis-je between() dates de retour à partir du début (b) Date?

Répondre

11

Vous devez passer b dans RRULE, comme ceci:

rrule(MONTHLY, dtstart = b).between(b, e, inc=True) 

A partir de ces documents (http://labix.org/python-dateutil), il semble appeler RRULE sans spécifier dtstart utilisera datetime.datetime.now() comme point de départ pour la séquence que vous appliquerez plus tard between. C'est pourquoi vos valeurs commencent au 2009-03-06.

Questions connexes