dateutil.rrule.rrule.between () solo da fechas después de ahora
-
03-07-2019 - |
Pregunta
Desde la consola de IPython:
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)]
¿Cómo puedo hacer que entre ()
devuelva las fechas a partir de la fecha de inicio ( b
)?
Solución
Debes pasar b
a la regla, de esta manera:
rrule(MONTHLY, dtstart = b).between(b, e, inc=True)
De estos documentos ( http://labix.org/python-dateutil ), parece que llamar a rrule sin especificar dtstart usará datetime.datetime.now () como el punto de inicio de la secuencia a la que luego aplicará entre
a. Es por eso que tus valores comienzan el 2009-03-06.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow