0

こんにちは私は時間に依存するプログラムを書いていて、私が完全に理解できない日時オブジェクトでいくつかの奇妙な振る舞いを観察しています。私が使用している/問題を抱えているコードは...

now = datetime.now()
time_changed_state = some datettime object previously initialized
time_delay = some integer
time_arrival = time_changed_state + timedelta(minutes=time_delay)

if now < time_arrival:
   do something
elif now >= time_arrival:
   do something different

私は、コードが希望どおりに動作することを確認するためにテストケースを操作してきましたが、そうではないようです。

time_delay = 0のときの奇妙な動作を発見しました。これは、time_changed_stateがこの関数呼び出しの前に開始された日時オブジェクトであり、関数内で初期化されたため、現在は>=time_arrivalになることを知っています。ただし、「何か別のコードを実行する」ではなく、「何かを実行する」コードが実行されています。

本当にありがとう!

4

1 に答える 1

1

私はあなたのコードを編集しました、これはあなたが期待していることですか?

from datetime import datetime
from datetime import timedelta

now = datetime.now()
time_changed_state = now - timedelta(hours=2)
time_delay = 0
time_arrival = time_changed_state + timedelta(minutes=time_delay)

if now < time_arrival:
   print 'something'
elif now >= time_arrival:
   print 'something different'
于 2012-04-06T10:44:39.380 に答える