Calendario

Existe un módulo llamado calendar que entre otras cosas genera calendarios en modo texto o html.

Su uso es el siguiente:

Primero importamos el módulo.

import calendar

Después indicamos cual es el primer día de la semana que para el caso de España será el lunes.

calendar.setfirstweekday(calendar.MONDAY)

Ahora asignamos el calendario de texto a una variable.

cal = calendar.TextCalendar()

Por cierto, si queremos ahorrarnos el paso previo de indicar el primer día de la semana, podemos indicarlo directamente aquí.

cal = calendar.TextCalendar(calendar.MONDAY)

Hasta aquí todo bien, ahora tenemos que decirle que mes queremos que muestre en pantalla para ello hacemos uso del método prmonth al que pasamos dos parámetros, uno es el año y el otro el mes, por ejemplo para noviembre del 2024 quedaría así:

cal.prmonth(2024,11)

Bueno, más o menos con este código obtenemos el siguiente resultado.

import calendar
cal = calendar.TextCalendar(calendar.MONDAY)
cal.prmonth(2024,11)

Pero claro, está en inglés y quizás podemos quererlo en un idioma diferente como por ejemplo en español, en ese caso podemos hacer uso del módulo locale de la siguiente forma para obtener el mismo resultado pero traducido.

import locale
locale.setlocale(locale.LC_ALL, 'es_ES')
import calendar
calendar.setfirstweekday(calendar.MONDAY)
cal = calendar.TextCalendar()
cal.prmonth(2024,11)

¿Y si queremos mostrar el año completo?, entonces podemos hacer uso del método prcal al que pasaremos cómo parámetro el año a mostrar.

import locale
locale.setlocale(locale.LC_ALL, 'es_ES')
import calendar
calendar.setfirstweekday(calendar.MONDAY)
calendar.prcal(2024)

Obtendremos un resultado parecido a este:

Ell módulo calendar puede hacer mucho más. Os animo a mirar la documentación desde el entorno interactivo de Python (IDLE). Ya sabéis, en el terminal escribís python y en el IDLE escribís.

import calendar
help(calendar)

Si encontráis algo interesante dejad un comentario con vuestras impresiones 😉

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *