Python Módulo de calendario con ejemplo
⚡ Resumen inteligente
El módulo de calendario en Python Genera calendarios de texto y HTML utilizando las clases TextCalendar y HTMLCalendar. Realiza cálculos de fechas basados en el día, el mes y el año, y permite personalizar el primer día de la semana para cualquier mes.

El módulo de calendario en Python tiene una clase de calendario que permite realizar cálculos para diversas tareas en función de la fecha, el mes y el año. Además de eso, el Calendario de texto y Calendario HTML clases en Python te permite editar el calendario y usarlo según tus necesidades. Veamos qué podemos hacer con él. Python calendario.
¿Qué es el módulo de calendario en? Python?
El módulo de calendario es parte del Python Es una biblioteca estándar, por lo que está disponible sin necesidad de instalación. Agrupa varias clases y funciones auxiliares que crean calendarios y responden a preguntas comunes sobre fechas, como en qué día de la semana cae una fecha o cuántos días tiene un mes.
El módulo ofrece cinco clases principales:
- Calendario Es una clase base que proporciona los datos a partir de los cuales se construyen los demás calendarios.
- Calendario de texto Genera calendarios en texto plano para un mes o un año completo.
- Calendario HTML Genera calendarios como tablas HTML para páginas web.
- LocaleTextCalendario Es un calendario de texto que utiliza los nombres de los días y los meses de la ubicación geográfica seleccionada.
- LocaleHTMLCalendar es el equivalente HTML que respeta la configuración regional elegida.
Por defecto, una semana del calendario comienza el MondaySiguiendo la convención europea, puede cambiar el primer día utilizando una constante como calendar.SUNDAY, como se muestra en los ejemplos a continuación.
Cómo imprimir un calendario de texto en Python
Paso 1) Ejecute el código.
- Code Línea nº 1: Comenzamos con “import calendar”, que importará todas las clases de este módulo.
- Code Línea # 3: c= calendar.TextCalendar(calendar.SUNDAY) le indica al intérprete que cree un calendario de texto. El inicio del mes será el domingo. En PythonPuedes formatear el calendario como quieras y cambiar el día en que comienza el mes.
- Code Línea # 4: str= c.formatmonth(2025,1) crea un calendario para el año 2025, Mes 1 – Enero.
- Code Línea # 5: print str imprimirá la salida.
Cambiemos rápidamente el valor de domingo a jueves y comprobemos el resultado.
Cómo imprimir un calendario HTML en Python
Paso 2) También puedes imprimir el calendario en formato HTML. Esta función es útil para los desarrolladores que quieran modificar la apariencia del calendario.
Cómo recorrer los días de un mes en bucle
Paso 3) bucles sobre los días de un mes usando c.itermonthdays (2025,4); obtendrá el número total de días para ese mes.
- Cuando ejecute el código para obtener el número total de días de un mes específico, por ejemplo, "abril", obtendrá 30 días en el resultado, pero también verá algunos ceros junto con estos días al principio y, a veces, al final.
- Los ceros en la salida significan que el día de la semana está en superposición.ping mes, lo que significa que no pertenece a ese mes.
- Estos ceros aparecen en la salida porque, en tu código, has especificado un día (jueves). Al llamar a la función "c.itermonthdays", esta empieza a contar los días desde el jueves, y tu jueves puede no ser el 1 de abril, sino el 28 o el 29 de marzo. Por lo tanto, el código empieza a contar los días desde el 28 de marzo y los días posteriores hasta el 1 de abril. Estos días se cuentan como ceros, y verás estos ceros en la salida. Lo mismo ocurre al final del mes.
- Así pues, a excepción de las fechas comprendidas entre el 1 y el 30, todas las fechas del mes anterior y del mes siguiente aparecen en el resultado como ceros.
Cómo obtener los nombres de los meses y los días de la semana del sistema local.
Paso 4) Puedes obtener datos del sistema local, como los meses o los días de la semana.
- El resultado que se muestra aquí indica que hemos impreso los nombres de los meses desde el sistema local. Del mismo modo, también puede obtener los nombres de los días de la semana, como se muestra a continuación.
- El resultado depende del sistema operativo local. Si el sistema está configurado en otro país, el resultado se mostrará según la configuración regional de ese país. En este caso, se trata de meses, por lo que no habrá diferencia, pero para una semana o un día, sin duda habrá diferencias.
Cómo encontrar un día específico para todo el año
Paso 5) Puedes obtener la lista de un día específico para todo un año. Por ejemplo, hay un día de auditoría cada primer Monday de una semana. Supongamos que quieres saber la fecha del primero Monday para cada mes. Puedes usar este código.
- mycal = calendar.monthcalendar(2025, month) crea un calendario para el mes.
- Establece las variables week1 y week2 como la primera y la segunda semana del calendario.
- Compruebe si la semana 1 contiene Monday y fijar el día de la auditoría.
- De lo contrario, establezca el día de la auditoría como el primero. Monday en la semana 2.
- El resultado muestra la fecha de la primera Monday que cae en ese mes.
- La duración de este objeto Cal depende de cuántas semanas tenga el mes. En nuestro caso, es una o dos, como la primera Monday La primera semana suele ser la primera, pero si no, consideramos la segunda. Veamos en detalle por qué también consideramos la segunda semana.
- Aquí estamos utilizando la constante del calendario. Monday. El objeto calendario te da constantes que representan el domingo, Monday, martes, y así sucesivamente. Si, en la primera semana, el día representado por el Monday la constante no es igual a 0 – recuerda, los ceros significan días que pertenecen a otro mes – entonces eso Monday pertenece a este mes y el día de auditoría está dentro de la primera semana. Si es 0, entonces el primero Monday No es en la primera semana del mes, así que debe ser en la segunda.
- En ese caso, establecemos la variable del día de auditoría en el Monday representada por la segunda semana. El día de la auditoría regresa con el día que corresponda a la primera o a la segunda semana.
Paquete COMPLETE Python Calendario Code Ejemplo
Aquí está el código completo.
Python 2 Ejemplo
import calendar # Create a plain text calendar c = calendar.TextCalendar(calendar.THURSDAY) str = c.formatmonth(2025, 1, 0, 0) print str # Create an HTML formatted calendar hc = calendar.HTMLCalendar(calendar.THURSDAY) str = hc.formatmonth(2025, 1) print str # loop over the days of a month # zeroes indicate that the day of the week is in a next month or overlapping month for i in c.itermonthdays(2025, 4): print i # The calendar can give info based on local such a names of days and months (full and abbreviated forms) for name in calendar.month_name: print name for day in calendar.day_name: print day # calculate days based on a rule: For instance an audit day on the second Monday of every month # Figure out what days that would be for each month, we can use the script as shown here for month in range(1, 13): # It retrieves a list of weeks that represent the month mycal = calendar.monthcalendar(2025, month) # The first MONDAY has to be within the first two weeks week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: # if the first MONDAY isn't in the first week, it must be in the second week auditday = week2[calendar.MONDAY] print "%10s %2d" % (calendar.month_name[month], auditday)
Python 3 Ejemplo
import calendar # Create a plain text calendar c = calendar.TextCalendar(calendar.THURSDAY) str = c.formatmonth(2025, 1, 0, 0) print(str) # Create an HTML formatted calendar hc = calendar.HTMLCalendar(calendar.THURSDAY) str = hc.formatmonth(2025, 1) print(str) # loop over the days of a month # zeroes indicate that the day of the week is in a next month or overlapping month for i in c.itermonthdays(2025, 4): print(i) # The calendar can give info based on local such a names of days and months (full and abbreviated forms) for name in calendar.month_name: print(name) for day in calendar.day_name: print(day) # calculate days based on a rule: For instance an audit day on the second Monday of every month # Figure out what days that would be for each month, we can use the script as shown here for month in range(1, 13): # It retrieves a list of weeks that represent the month mycal = calendar.monthcalendar(2025, month) # The first MONDAY has to be within the first two weeks week1 = mycal[0] week2 = mycal[1] if week1[calendar.MONDAY] != 0: auditday = week1[calendar.MONDAY] else: # if the first MONDAY isn't in the first week, it must be in the second week auditday = week2[calendar.MONDAY] print("%10s %2d" % (calendar.month_name[month], auditday))
Funciones útiles en el Python Módulo de calendario
Además del tutorial anterior, el módulo de calendario incluye varias funciones prácticas que funcionan sin necesidad de crear una instancia de clase:
- calendario.calendario(año) devuelve un calendario anual completo como una cadena de varias líneas, mientras que calendario.prcal(año) lo imprime directamente.
- calendario.mes(año, mes) devuelve un solo mes como texto, y calendario.prmonth(año, mes) lo imprime.
- calendario.mescalendario(año, mes) Devuelve el mes como una lista de filas semanales, donde cada día es un número entero y los días fuera del mes son 0.
Estas funciones permiten generar un calendario rápido en una sola línea, lo cual resulta práctico en scripts y sesiones interactivas donde no se necesita el control adicional de las clases TextCalendar o HTMLCalendar.
Cómo comprobar si un año es bisiesto en Python
El módulo de calendario también puede indicar si un año es bisiesto, lo cual es importante porque febrero tiene 29 días en lugar de 28 en esos años. Dos funciones se encargan de esto:
- calendario.esbite(año) Devuelve True cuando el año es bisiesto y False en caso contrario.
- calendario.díasbiscales(y1, y2) Devuelve el número de años bisiestos en el rango desde y1 hasta y2, sin incluir este último.
Por ejemplo, calendar.isleap(2024) devuelve True, mientras que calendar.isleap(2025) devuelve False. Las comprobaciones de año bisiesto son útiles cuando se validan fechas, se programan eventos recurrentes o se cuenta el número exacto de días entre dos años.







