Google+ Seguidores

martes, 21 de noviembre de 2017

Gestión de Calendarios con Python

Introducción:

Últimamente, e subido artículos un poco "exóticos", se que a muchos les gusta hacer cosas divertidas e interesantes con Python, pero quisiera hacer algo diferente, de esa manera no hago lo mismo todos el tiempo. 
Hoy, daremos un pequeño paseo por el modulo "calendar", sera un articulo no muy largo, pero quisiera hacer más artículos como este, de esta manera interactuamos y nos familiarizamos más con la librería estándar de Python.

Calendar - Funciones Generales relacionadas con el calendario:

Con el modulo calendar, podemos gestionar calendarios, generar calendarios en formato de Texto Plano y calendarios en formato HTML para nuestros sitios web, todo desde nuestro interprete de Python.

Resultado de imagen para calendario

Intentemos algo sencillo, vamos a imprimir un calendario del año 2009 en un formato de texto. Esto lo lograremos con ayuda de la clase "TextCalendar". Veamos un ejemplo.



import calendar

#Instancia de TextCalendar
cl = calendar.TextCalendar()

#Elegimos el formato del año y mes del calendario
calendario_sep = cl.formatmonth(2009, 9)

#Mostramos el resultado
print(calendario)


Bien, analicemos un poco el código. Lo primero que hacemos es importar el modulo "calendar", de esta manera tendremos acceso a todas sus clases. Luego creamos una instancia de la clase "TextCalendar", seguidamente, usamos el método "formatmonth" para elegir el formato del calendario, le pasamos como argumentos: El año del calendario que queremos y el mes (1-12). Luego de todo esto, imprimimos al calendario con la función print.


Pero, ¿que pasa si quisiéramos el calendario de todo el año 2009?. Pues muy fácil, para ello usaremos el método "formatyear", de igual manera que "formatmonth". Veamos un ejemplo:


import calendar

#Instancia de TextCalendar
cl = calendar.TextCalendar()

#Elegimos el formato del año
calendario_2009 = cl.formatyear(2009)

#Mostramos el resultado
print(calendario_2009)

Lo unico diferencia del codigo anterior, es el método "formatyear", que configura el formato del año del calendario, en este caso es 2009. El resultado debería quedarnos algo así:



Y de esta manera tan sencilla, tenemos el calendario completo del año 2009.

Todo este calendario esta en formato "Text Plain" (Texto plano).
El moudlo calendar, también nos da la posibilidad de generar calendarios en formato HTML. Esto lo podemos lograr usando la calse HTMLCalendar.

Lo que haremos sera plasmar el calendario del año 2012 en una pagina HTML. Veamos como hacerlo:


import calendar
#Instancia de HTMLCalendar
cl = calendar.HTMLCalendar()
#Definimos el año del calendario
calendario_2012 = cl.HTMLCalendar(2012)
#Creamos un archivo con formato html en donde estará el contenido HTML
with open("./calendario_2012.html") as html:
     html.write(calendario_2012)
     html.close()


Luego de ejecutar este código, en nuestro directorio actual tendremos nuestro archivo HTML con el calendario especificado.



Ese sera mi archivo HTML generado, con algunos retoques creo que quedaria bein.

Mi fácil, ¿cierto?, el modulo "calendar" nos facilita muchas cosas.

Veamos algunos métodos que nos proporciona calendar.

calendar, nos proporciona el método "day_name", el cual es un diccionario con los nombres de los días de la semana (en ingles), podemos recorrer este diccionario con un bucle y nos quedaría algo así:




Igual que el método "day_name", también tenemos el método "month_name", que de igual manera es un diccionario, con todos los nombres de los meses del año:




Tienes ganas de más, te sugiero que vayas a la documentación oficial de Python, es bueno pasar por aquí de vez en cuando, de esta manera vamos conociendo mejor a esos módulos, que siempre estarán allí para nosotros.

Como dije en la introducción, este articulo lo haría un poco corto, solo para repasar este modulo que es de mucha utilidad.

Comparte tu opinión acerca del articulo y si te gustaría más artículos sobre la librería estándar de Python, tus opiniones nos ayudan a mejorar.

Mi nombre es Luis, y fue un placer compartir mis conocimientos con todos ustedes :D.

6 comentarios :
Write comentarios

Tu comentario es importante y nos motiva a seguir escribiendo...

Entradas más recientes

Powered by Blogger .