1

dateutil.relativedelta の動作を理解するのに苦労しています。relativedelta docで指定されているように負の引数を使用すると、 relativedelta が過去の日付を返す可能性があることを理解しています。

ただし、正のパラメーターを指定すると、常に将来の日付が返されることが期待されます...それは正当に思えますか?

私の使用例は次のとおりです。私たちは火曜日で、8:35 です。月曜日と火曜日の最も近い日付の 6:00 を取得したいと考えています。

ここで私がしたこと。最初の結果は正しいように思えますが、2 番目の結果は間違っています。

>>> import datetime
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2016, 11, 29, 8, 35, 23, 786349)

>>> from dateutil import relativedelta
>>> now.weekday()
1

>>> now + relativedelta.relativedelta(weekday=0, hour=6, minute=0) # should give a time in the future
datetime.datetime(2016, 12, 5, 6, 0, 23, 786349)  # here this is correct, in the future

>>> now + relativedelta.relativedelta(weekday=1, hour=6, minute=0) # should give a time in the future
datetime.datetime(2016, 11, 29, 6, 0, 23, 786349)  # but this is in the past / I would expect result (2016, 12, 6, 6, 0, 23, 786349)

それで、私はここで何か間違ったことをしていますか?

4

2 に答える 2