Manejando fechas con python

O como descubrir que si se hacen bien las cosas evitan muchos dolores de cabeza.

Llevo más de 10 años programando en Java y más de 12 programando en general, si me restrinjo a mi vida laboral pues estamos hablando de siete años en Java y seis meses en Python. No entrare a discutir las virtudes y defectos de cada lenguaje, cada uno tiene lo suyo, pero no puedo evitar comparar el manejo de fechas que ha sido un dolor de cabeza en los diferentes proyectos que hemos realizado con Java y que por el momento esta siendo una delicia con Python.

Una pequeña muestra de lo que se puede hacer con el manejo de fechas con Python, mediante la libreria python-dateutil.

Primero instalamos la libreria python-dateutil.

easy_install python-dateutil

A continuación podemos crear un script con el código de ejemplo o lo ejecutamos en la consola intercativa de Python:

from dateutil.relativedelta import *
from dateutil.easter import *
from dateutil.rrule import *
from dateutil.parser import *
from datetime import *

today = date.today()
year = rrule(YEARLY,bymonth=8,bymonthday=16,byweekday=FR)[0].year
rdelta = relativedelta(easter(year), today)
print "Hoy es:", today
print "El próximo año en que el 13 de agosto es viernes es el :", year
print "Faltan %s días para el Día de Pascua." %(rdelta)
print "Pascua de ese año es el %s." %(today+rdelta)

El resultado de ejecutar este código es:

Hoy es: 2009-02-06
El próximo año en que el 13 de agosto es viernes es el : 2010
Faltan relativedelta(years=+1, months=+1, days=+29) días para el Día de Pascua.
Pascua de ese año es el 2010-04-04.

Simple y potente, especialmente las rrule, que nos permiten encontrar todos los días que cumplen un cierto patrón. En este caso, buscamos con frecuencia anual, un día de la semana viernes, que sea día 13 del mes de agosto, el primer día que cumple este patrón es en el año 2010, nos devuelve un iterador con todos los días que cumplen esta regla, de cual nosotros queremos conocer el primer año en cumplirla.Esto, son utilidades aparte de las que ya nos ofrece el propio lenguaje de ‘serie’, como restar fechas, añadir o restar periodos,…, por ejemplo hoy más dos días seria tan sencillo como:

import datetime
pasado_manyana = date.today() + timedelta(days=2)
print pasado_manyana
2009-02-08

Y mucho más.

Anuncios

3 comentarios en “Manejando fechas con python

  1. Durant els meus anys de programació en Java sempre vaig pensar que qui va implementar el tema de les dates es veu que va tenir un mal dia, i quan veig el senzill que resulta en python me fa pensar que té molt futur.

  2. gracias me sirvio de mucho, si no es mucho pedir,,, que libreria o q instrucciones es para imprimir la hora exacta… ejemplo 12:23:30

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s