Подтвердить что ты не робот

Сравнение временной дельта в 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(), но это похоже на работу. Есть ли более простой способ сравнить это значение?

4b9b3361

Ответ 1

Вам нужно создать новый timedelta с указанным количеством времени:

d > timedelta(minutes=1)

Или этот чуть более полный script поможет вам в разработке:

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

Ответ 2

Вам просто нужно создать объект timedelta с нуля, сравнение после этого тривиально:

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

Ответ 3

Исправьте меня, если я ошибаюсь, но я думаю, что вы также можете использовать следующее:

Вместо

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

Можно сказать

if elapsed.seconds > 1:

Ответ 4

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

но для этого требуется python 2.7 +