Saltar al contenido

Tutorial de Python CALENDAR con ejemplo

diciembre 8, 2019

El módulo Calendario en Python tiene la clase de calendario que permite los cálculos para varias tareas basadas en la fecha, el mes y el año. Además, las clases TextCalendar y HTMLCalendar de Python le permiten editar el calendario y utilizarlo según sus necesidades.

Veamos qué podemos hacer con el Calendario Python.

Paso1) Ejecute el código.

  • Línea de código # 1: Comenzamos con el «calendario de importación» que importará todas las clases de este módulo.
  • Línea de código # 3: c= calendar.TextCalendar(calendar.SUNDAY) le dice al intérprete que cree un calendario de texto. El comienzo del mes será el domingo. En Python, puede formatear el calendario ya que puede cambiar el día del mes para empezar
  • Code Line # 4: str= c.formatmonth(2025,1) Estamos creando el calendario para el año 2025, Mes 1 – Enero
  • Línea de código # 5: print str imprimirá la salida.

Cambiemos rápidamente el valor de domingo a jueves y comprobemos la salida

Paso 2) También puede imprimir el Calendario en formato HTML, esta característica es útil para el desarrollador si desea realizar algún cambio en el aspecto del calendario

Paso 3) Bucles sobre los días de un mes usando c.itermonthday (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 para un mes específico diga «Abril» entonces obtendrá 30 días en la salida pero también verá algunos ceros junto con estos días al principio y a veces al final de ella.
  • Los ceros en la salida significan que el día de la semana está en un mes solapado, lo que significa que no pertenece a ese mes.
  • Estos ceros aparecen en la salida porque, en tu código has mencionado día (jueves), así que cuando llames a la función «c.itermonthdays», empezará a contar los días desde el jueves y tu jueves puede que no empiece con la fecha 1 de abril, puede que sea el 28 o 29 de marzo, así que cuando ejecutes el código empezará a contar los días desde el 28 de marzo y los días posteriores hasta el 1 de abril. Estos días se contarán como cero y en la salida se verán estos ceros y lo mismo es aplicable al final del mes.
  • Así que, excepto la fecha 1-30, todas las fechas del mes anterior y del mes posterior aparecerán en la salida como ceros.

Paso 4) Puede obtener los datos del sistema local, como meses o días de la semana, etc

  • La salida de aquí muestra que hemos impreso el nombre del mes desde el sistema local. Del mismo modo, también puede obtener el nombre de los días de la semana como se muestra a continuación
  • La salida dependerá del sistema local, suponga que si su sistema local es de otros países, entonces le dará la salida según la configuración local de ese país. Aquí tenemos meses, así que no será una diferencia, pero si es una semana o un día, ciertamente será diferente.

Paso 5) Puede obtener la lista del día específico durante todo un año. Por ejemplo, hay un día de auditoría cada primer lunes de la semana. Usted quiere saber la fecha del primer lunes de cada mes. Puede utilizar este código

  • mycal = calendar.monthcalendar(2025, mes) creará el calendario del mes
  • Establecer las variables semana1 y semana2 en la primera y segunda semana del calendario
  • Compruebe si la Semana 1 contiene el lunes, día de la auditoría
  • Si no, establecer el día de la auditoría como el primer lunes de la semana 2
  • La salida muestra la fecha del primer lunes que cae en ese mes.
  • La longitud de este objeto Cal va a ser una cierta longitud, basada en cuántas semanas hay en el mes. En nuestro caso, va a ser uno o dos como tal, el primer lunes de la semana será en la primera semana más a menudo, pero si no, entonces considere la segunda semana. Veamos en detalle por qué también consideramos la segunda semana.
  • Aquí estamos usando la constante de lunes del calendario, el objeto de calendario le da constantes que representan domingo, lunes, martes, etcétera, etcétera. Ya los hemos visto antes. Por lo tanto, si en la primera semana el día representado por la constante de lunes no es igual a 0, recuerde que ceros significa días que pertenecen a otro mes. Así que, en este caso, si es cero, va a ser un lunes que pertenece al mes anterior. Pero si el primer lunes no es igual a 0, eso significa que mi día de auditoría será dentro de la primera semana. De lo contrario, si eso es 0, entonces el primer lunes no es en la primera semana del mes, tiene que ser en la segunda.
  • Entonces, digo que está bien, que mi variable del día de auditoría sea el lunes representado por la semana dos. Por lo tanto, el día de la auditoría va a volver con lo que sea que el día es para la primera o segunda semana.

Aquí está el código completo

Python 2 Ejemplo

importar calendario
# Cree un calendario de texto plano
c = calendario.TextCalendar(calendario.JUEVES)
str = c.formatmonth(2025, 1, 0, 0)
línea de impresión
# Cree un calendario con formato HTML
hc = calendario.HTMLCalendario(calendario.JUEVES)
str = hc.formatmonth(2025, 1)
línea de impresión
# loop sobre los días de un mes
# Los ceros indican que el día de la semana es en el mes siguiente o en un mes que se superpone.
para i in c.itermonthdays(2025, 4):
imprimir i
# El calendario puede dar información basada en los nombres locales de días y meses (formularios completos y abreviados).
para el nombre en calendar.month_name:
nombre en letra de molde
para el día en el calendario.day_name:
día de impresión
# calcular los días en base a una regla: Por ejemplo, un día de auditoría el segundo lunes de cada mes.
# Calcule qué días serían para cada mes, podemos usar el script como se muestra aquí
para el mes dentro del rango (1, 13):
# Recupera una lista de semanas que representan el mes
mycal = calendario.mescalendario(2025, mes)
# El primer LUNES tiene que ser dentro de las primeras dos semanas
semana1 = mical[1]
semana2 = mycal[2]
si semana1[calendario.LUNES]!= 0:
auditday = semana1[calendario.LUNES]
de los demás:
# si el primer LUNES no es en la primera semana, debe ser en la segunda semana
auditday = semana2[calendario.LUNES]
imprimir «%10s %2d» % (calendar.month_name[mes], auditday)

>

Python 3 Ejemplo

importar calendario
# Cree un calendario de texto plano
c = calendario.TextCalendar(calendario.JUEVES)
str = c.formatmonth(2025, 1, 0, 0)
print(str)
# Cree un calendario con formato HTML
hc = calendario.HTMLCalendario(calendario.JUEVES)
str = hc.formatmonth(2025, 1)
print(str)
# loop sobre los días de un mes
# Los ceros indican que el día de la semana es en el mes siguiente o en un mes que se superpone.
para i in c.itermonthdays(2025, 4):
imprimir(i)
# El calendario puede dar información basada en los nombres locales de días y meses (formularios completos y abreviados).
para el nombre en calendar.month_name:
imprimir(nombre)
para el día en el calendario.day_name:
imprimir(día)
# calcular los días en base a una regla: Por ejemplo, un día de auditoría el segundo lunes de cada mes.
# Calcule qué días serían para cada mes, podemos usar el script como se muestra aquí
para el mes dentro del rango (1, 13):
# Recupera una lista de semanas que representan el mes
mycal = calendario.mescalendario(2025, mes)
# El primer LUNES tiene que ser dentro de las primeras dos semanas
semana1 = mical[1]
semana2 = mycal[2]
si semana1[calendario.LUNES]!= 0:
auditday = semana1[calendario.LUNES]
de los demás:
# si el primer LUNES no es en la primera semana, debe ser en la segunda semana
auditday = semana2[calendario.LUNES]
print(«%10s %2d» % (calendar.month_name[month], auditday))

>

Resumen:

  • En Python, puede formatear el calendario de la forma que desee, ya que puede cambiar el día del mes para que comience
  • Imprimir el calendario en formato HTML
  • Obtener los datos del sistema local, como meses o días de la semana
  • Obtener la lista del día específico durante todo un año