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.

  • 🔘 Dos tipos de calendario: Las clases TextCalendar y HTMLCalendar generan calendarios en texto plano y listos para la web para un mes o año seleccionado.
  • ☑️ Primer día laborable: Las constantes como calendar.SUNDAY y el método setfirstweekday() cambian el día en que comienza cada semana.
  • Días de iteración: El método itermonthdays() recorre un mes y marca las superposiciones.ping días de meses adyacentes como ceros.
  • 🧪 Funciones auxiliares: Funciones como isleap(), weekday() y monthrange() responden a preguntas comunes sobre fechas sin necesidad de ninguna biblioteca adicional.
  • 🛠️ Biblioteca estándar: El módulo de calendario se envía con Python, por lo que no necesita instalación antes de importarlo y usarlo.
  • 🤖 Flujos de trabajo de IA: Los sistemas de aprendizaje automático extraen características del calendario, como indicadores de días de la semana y años bisiestos, para la previsión de series temporales.

Python Módulo Calendario

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.

Imprime un calendario de texto en Python

  • 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.

Cambiar el primer día laborable de un Python calendario

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.

Imprime un calendario HTML en Python

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.

Recorrer los días de un mes en Python

  • 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.

Obtener los nombres de los meses del sistema local en Python

  • 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.

Obtenga los nombres de los días de la semana del sistema local en Python

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.

Encuentra un día específico para todo el año en Python

  • 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.

Preguntas Frecuentes

El módulo de calendario se centra en la creación y el análisis de calendarios: texto, HTML, números de días de la semana y comprobación de años bisiestos. El módulo de fecha y hora gestiona marcas de tiempo específicas, cálculos aritméticos y el formato de fechas y horas individuales. Muchos programas importan ambos módulos y los utilizan conjuntamente.

Llama a calendar.weekday(año, mes, día). Devuelve un número entero desde 0 (Monday) al 6 (domingo). Combínalo con calendar.day_name para convertir ese número en una etiqueta legible como Monday o el viernes.

Utilice calendar.monthrange(año, mes). Devuelve una tupla cuyo segundo valor es el número de días, por lo que calendar.monthrange(2025, 2)[1] devuelve 28. El primer valor es el día de la semana del primer día de ese mes.

Utilice calendar.LocaleTextCalendar o calendar.LocaleHTMLCalendar e indique una configuración regional como “fr_FR”. El mes formateado mostrará los nombres de los días de la semana y los meses en ese idioma, siempre que la configuración regional esté instalada en el sistema operativo.

Genera el marcado con HTMLCalendar().formatmonth(2025, 1), luego abre un archivo en modo de escritura y llama a write() con esa cadena. Al guardarlo con la extensión .html, cualquier navegador podrá mostrar el calendario con el formato deseado.

Por defecto la semana comienza el Monday, siguiendo la convención europea. Llame a calendar.setfirstweekday(calendar.SUNDAY), o pase una constante como calendar.SUNDAY a un TextCalendar, para hacer que la semana comience en otro día.

Los flujos de datos utilizan funciones de calendario para obtener características como el día de la semana, el número de semana y los indicadores de año bisiesto a partir de fechas sin procesar. Estas características de calendario predefinidas ayudan a los modelos de aprendizaje automático a capturar patrones semanales y estacionales en la previsión de series temporales.

Sí. GitHub Copilot y los asistentes de IA con capacidad de agente pueden escribir fragmentos de módulos de calendario (imprimir meses, comprobar años bisiestos o crear un calendario HTML) a partir de un comentario breve. RevObserve el resultado, ya que la indexación de días laborables y la configuración del primer día son fáciles de confundir.

Resumir este post con: