Ik heb een variabele die <type 'datetime.timedelta'>
is en ik zou deze willen vergelijken met bepaalde waarden.
Laten we zeggen dat d deze datetime.timedelta
waarde 0:00:01.782000
produceert
Ik zou het als volgt willen vergelijken:
#if d is greater than 1 minute
if d>1:00:
print "elapsed time is greater than 1 minute"
Ik heb geprobeerd datetime.timedelta.strptime()
te converteren, maar dat lijkt te werken. Is er een eenvoudigere manier om deze waarde te vergelijken?
Antwoord 1, autoriteit 100%
Je moet een nieuwe timedelta
maken met de opgegeven hoeveelheid tijd:
d > timedelta(minutes=1)
Of dit iets completere script helpt bij het uitwerken:
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"
Uitvoer:
Slept for > 1 second
Antwoord 2, autoriteit 18%
Je hoeft alleen maar een timedelta
-object helemaal opnieuw te maken, daarna is vergelijken triviaal:
>>> a = datetime.timedelta(minutes=1)
>>> b = datetime.timedelta(minutes=1, seconds=1)
>>> a < b
True
>>> a > b
False
Antwoord 3, autoriteit 5%
Corrigeer me als ik het mis heb, maar ik denk dat je ook het volgende kunt gebruiken:
In plaats van
if elapsed > datetime.timedelta(seconds=1):
Je zou kunnen zeggen
if elapsed.seconds > 1:
Antwoord 4, autoriteit 4%
if d.total_seconds() > 60:
print("elapsed time is greater than 1 minute")
maar het vereist python 2.7+