dateutil.rrule.rrule.between () يعطي مواعيد الوحيدة بعد الآن

StackOverflow https://stackoverflow.com/questions/618910

  •  03-07-2019
  •  | 
  •  

سؤال

ومن وحدة 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)]

وكيف يمكنني أن أجعل مواعيد between() عودة بدءا من البداية (b) التاريخ؟

هل كانت مفيدة؟

المحلول

وتحتاج إلى تمرير b إلى RRULE، مثل هذا:

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

ومن هذه المستندات ( http://labix.org/python-dateutil )، يبدو أن داعيا RRULE دون تحديد DTSTART سوف تستخدم datetime.datetime.now () كنقطة بداية لسلسلة أنك بعد تطبيق between ل. هذا هو السبب تبدأ القيم الخاصة بك في 2009-03-06.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top