Es probable que esta función exista dentro del módulo time de Python pero, al no haberla encontrado, ha tocado hacerse una más casera.
El funcionamiento es simple, aportando dos fechas en formato estándar (YYYY-mm-dd) con separadores estándar (/ - .) se realiza el cálculo con una simple función, tal como sigue:
#!/usr/bin/python
from datetime import date
def daysDifference(date1,date2):
d1 = date(int(date1[0:4]),int(date1[5:7]),int(date1[-2:]))
d2 = date(int(date2[0:4]),int(date2[5:7]),int(date2[-2:]))
diff = d2 - d1
return diff.days
if __name__=='__main__':
numeroDias = daysDifference('20050203','20070423')
Suscribirse a:
Enviar comentarios (Atom)
4 comentarios:
Increible!!!
Tu propio ejemplo no funciona:
1.- Las fechas utilizadas en el ejemplo no tienen el separador entre año, mes y día.
2.- Falta un import del módulo "datetime" para que renonozca el tipo "date".
Así vamos...
Si, tienes razón, no funciona, pero no lo hace por ninguna de las razones que has dicho.
1. Las fechas utilizadas no tienen separadores porque no se utilizan separadores. El método está especificado para tratar strings (si mirases el código lo verías).
2. La primera línea realiza el import, pero en lugar de cargar todo el módulo datetime (que no lo necesita) carga únicamente la clase date, por eso de optimizar y tal...
¿Donde está el error?
d1 = date(int(date1[0:4]),int(date1[5:7]),int(date1[-2:]))
d2 = date(int(date2[0:4]),int(date2[5:7]),int(date2[-2:]))
Donde debería ser:
d1 = date(int(date1[0:4]),int(date1[4:6]),int(date1[-2:]))
d2 = date(int(date2[0:4]),int(date2[4:6]),int(date2[-2:]))
Te has cubierto de gloria amigo!
como hacer la resta de dos horas:
por ejemplo
1 hra sea de inicio
2 hra sea de termino
ahora como hace para restarlas en python con el modulo datetime
tenes que hacer 2 date, el codigo sería el siguiente:
from datetime import *
a = date(2012,07,20)
b = date (2013,07,20)
print b - a
Saludos!
Publicar un comentario