Foros del Web » Programando para Internet » Python »

Restar Horas

Estas en el tema de Restar Horas en el foro de Python en Foros del Web. wenas Estoy empezando en python y necesito restar 2 horas para saber la diferencia en dias horas minutos Tengo este código que no me esta ...
  #1 (permalink)  
Antiguo 11/05/2015, 17:34
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 14 años, 1 mes
Puntos: 10
Restar Horas

wenas

Estoy empezando en python y necesito restar 2 horas para saber la diferencia en dias horas minutos

Tengo este código que no me esta funcionando
Código Python:
Ver original
  1. startTime = 1431387066
  2. onlineTime = time() - startTime
  3. onlineSince = date.fromtimestamp(onlineTime)

Me devuelve esto:
time() = 1431387269.34
startTime = 1431387066
onlineSince = 203.342000008

result = " ("+str(onlineSince.day)+"d "+str(onlineSince.hour)+"h "+str(onlineSince.minute)+"m)

El result me devuelve siempre
(31d 19h 42m)

Que estoy haciendo mal?
El startTime se obtiene desde una base de datos mysql
  #2 (permalink)  
Antiguo 12/05/2015, 10:46
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Restar Horas

Lo que estás haciendo mal es usar date en vez de datetime. Esto debería ilustrar cuál es el problema:
Código Python:
Ver original
  1. >>> import datetime
  2. >>> print datetime.date.fromtimestamp(time())
  3. 2015-05-12
  4. >>> print datetime.datetime.fromtimestamp(time())
  5. 2015-05-12 13:50:27.146378

De todas maneras, si realmente estuvieses usando datetime.date en vez de datetime.datetime, debería darte un error:
Código:
>>> result = " ("+str(onlineSince.day)+"d "+str(onlineSince.hour)+"h "+str(onlineSince.minute)+"m)"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'datetime.date' object has no attribute 'hour'

Etiquetas: funcion, horas, restar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:35.