web-dev-qa-db-ja.com

pythonの時間差を比較する

_<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()を変換しようとしましたが、うまくいくようです。この値を比較する簡単な方法はありますか?

56
Alpesh Patel

指定した時間で 新しい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

77
Mark Rushakoff

timedeltaオブジェクトを最初から作成する必要があります。その後の比較は簡単です:

>>> a = datetime.timedelta(minutes=1)
>>> b = datetime.timedelta(minutes=1, seconds=1)
>>> a < b
True
>>> a > b
False
16
SilentGhost

私が間違っている場合は修正してくださいが、次のものも使用できると思います:

の代わりに

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

あなたは言えた

if elapsed.seconds > 1:
3
Argyrios Tzakas
if d.total_seconds() > 60:
  print("elapsed time is greater than 1 minute")

ただし、python 2.7+

0
max