79

ある変数があり<type 'datetime.timedelta'>、それを特定の値と比較したいと思います。

d がこのdatetime.timedelta値を生成するとしましょう0:00:01.782000

次のように比較したいと思います。

#if d is greater than 1 minute 
if d>1:00:
  print "elapsed time is greater than 1 minute"

変換してみましdatetime.timedelta.strptime()たが、うまくいくようです。この値を比較する簡単な方法はありますか?

4

4 に答える 4

114

指定された時間で新しいtimedeltaものを作成する必要があります。

d > timedelta(minutes=1)

または、このもう少し完全なスクリプトが詳しく説明するのに役立ちます。

import datetime
from time import sleep

start = datetime.datetime.now()
sleep(3)
stop = datetime.datetime.now()

elapsed = stop - start

if elapsed > datetime.timedelta(minutes=1):
    print "Slept for > 1 minute"

if elapsed > datetime.timedelta(seconds=1):
    print "Slept for > 1 second"

出力:

Slept for > 1 second

于 2010-04-07T11:10:20.800 に答える
20

オブジェクトを最初から作成するだけtimedeltaで、その後の比較は簡単です。

>>> a = datetime.timedelta(minutes=1)
>>> b = datetime.timedelta(minutes=1, seconds=1)
>>> a < b
True
>>> a > b
False
于 2010-04-07T11:12:16.817 に答える
6

間違っている場合は訂正してください。ただし、次の方法も使用できると思います。

それ以外の

if elapsed > datetime.timedelta(seconds=1):

あなたは言えた

if elapsed.seconds > 1:
于 2013-05-15T16:30:45.740 に答える
4
if d.total_seconds() > 60:
  print("elapsed time is greater than 1 minute")

ただし、python 2.7+が必要です

于 2016-03-28T10:02:59.013 に答える