質問

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 )からは、次のようになります。 dtstartを指定せずにrruleを呼び出すと、後で between を適用するシーケンスの開始点としてdatetime.datetime.now()が使用されます。そのため、値は2009-03-06から始まります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top