example - Comparando un delta de tiempo en python
string to date python (4)
Tengo una variable que es <type ''datetime.timedelta''>
y me gustaría compararla con ciertos valores.
Digamos que d produce este valor datetime.timedelta
0:00:01.782000
Me gustaría compararlo así:
#if d is greater than 1 minute
if d>1:00:
print "elapsed time is greater than 1 minute"
He intentado convertir datetime.timedelta.strptime()
pero parece funcionar. ¿Hay alguna manera más fácil de comparar este valor?
Solo necesitas crear el objeto timedelta
desde cero, la comparación después de eso es trivial:
>>> a = datetime.timedelta(minutes=1)
>>> b = datetime.timedelta(minutes=1, seconds=1)
>>> a < b
True
>>> a > b
False
Tendrá que crear un nuevo timedelta
con la cantidad de tiempo especificada:
d > timedelta(minutes=1)
O este guión un poco más completo ayudará a elaborar:
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"
Salida:
Slept for > 1 second
Corrígeme si me equivoco, pero creo que también podrías usar lo siguiente:
En lugar de
if elapsed > datetime.timedelta(seconds=1):
Tu puedes decir
if elapsed.seconds > 1:
if d.total_seconds() > 60:
print("elapsed time is greater than 1 minute")
pero requiere Python 2.7+