J'ai une variable qui est <type 'datetime.timedelta'>
et je voudrais la comparer à certaines valeurs.
Disons que d produit cette datetime.timedelta
valeur 0:00:01.782000
Je voudrais comparer comme ça:
#if d is greater than 1 minute
if d>1:00:
print "elapsed time is greater than 1 minute"
J'ai essayé de convertir datetime.timedelta.strptime()
mais cela semble fonctionner. Existe-t-il un moyen plus simple de comparer cette valeur?
Vous devrez créer une nouvelle timedelta
avec le temps spécifié:
d > timedelta(minutes=1)
Ou ce script légèrement plus complet aidera à élaborer:
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"
Sortie:
Slept for > 1 second
Il vous suffit de créer un objet timedelta
de toutes pièces. La comparaison est ensuite triviale:
>>> a = datetime.timedelta(minutes=1)
>>> b = datetime.timedelta(minutes=1, seconds=1)
>>> a < b
True
>>> a > b
False
Corrigez-moi si je me trompe, mais je pense que vous pourriez aussi utiliser ce qui suit:
Au lieu de
if elapsed > datetime.timedelta(seconds=1):
Tu pourrais dire
if elapsed.seconds > 1:
if d.total_seconds() > 60:
print("elapsed time is greater than 1 minute")
mais il faut python 2.7+