2

dateutils.rrule.rrule時間をさかのぼって走る方法はありますか?たとえば、私は

[dt.datetime(2014, 8, 29, 0, 0), 
 dt.datetime(2014, 9, 5, 0, 0), 
 dt.datetime(2014, 9, 12, 0, 0), 
 dt.datetime(2014, 9, 19, 0, 0), 
 dt.datetime(2014, 9, 26, 0, 0)]

この例では:

import datetime as dt
from dateutil.rrule import rrule, WEEKLY

date0 = dt.datetime(2014, 10, 3)
date1 = dt.datetime(2014, 8, 26)

rrule(WEEKLY, dtstart=date0).between(date0, date1)

しかし、これは私に空のリストを与えます...

*悲しげでしかめっ面を挿入*

4

1 に答える 1

3
import datetime as dt
import dateutil.rrule as RR

date0 = dt.datetime(2014, 10, 3)
date1 = dt.datetime(2014, 8, 26)

start = min([date0, date1])
end = max([date0, date1])
dow = RR.weekday(date0.weekday())
print(RR.rrule(RR.WEEKLY, byweekday=dow, dtstart=start).between(start, end))

収量

[datetime.datetime(2014, 8, 29, 0, 0),
 datetime.datetime(2014, 9, 5, 0, 0),
 datetime.datetime(2014, 9, 12, 0, 0),
 datetime.datetime(2014, 9, 19, 0, 0),
 datetime.datetime(2014, 9, 26, 0, 0)]

以前にdtstart=date0日付を生成する rrule を定義する方法はないと思います。早い方の日付を使用する必要があります。さらに、で呼び出す必要があります。そうしないと、結果が空になります。 date0between(a, b)a <= b

于 2014-10-03T21:08:24.967 に答える