Tutorial de CALENDARIO de Python con ejemplo
El módulo de calendario en Python tiene la clase de calendario que permite realizar cálculos para diversas tareas según la fecha, el mes y el año. Además, las clases TextCalendar y HTMLCalendar en Python le permiten editar el calendario y utilizarlo según sus necesidades.
Veamos qué podemos hacer con Python Calendar.
Paso 1) Ejecute el código.
- Línea de código n.° 1: comenzamos con “importar calendario” que importará todas las clases de este módulo.
- Línea de código n.º 3: c= calendario.TextCalendar(calendar.SUNDAY) le dice al intérprete que cree un calendario de texto. El inicio del mes será el domingo. En Python, puedes formatear el calendario ya que puedes cambiar el día del mes para empezar.
- Línea de código n.° 4: str= c.formatmonth(2025,1) Estamos creando un calendario para el año 2025, mes 1 - enero
- Línea de código n.° 5: print str imprimirá la salida.
Cambiemos rápidamente el valor de domingo a jueves y verifiquemos el resultado.
Paso 2) También puede imprimir el calendario en formato HTML; esta función es útil para los desarrolladores si desean realizar algún cambio en la apariencia del calendario.
Paso 3) Recorre los días de un mes usando c.itermonthday (2025,4), y obtendrá el número total de días de ese mes.
- Cuando ejecute el código para obtener el número total de días para un mes específico, diga "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 un mes superpuesto, lo que significa que no pertenece a ese mes.
- Estos ceros aparecen en la salida porque, en su código mencionó el día (jueves), por lo que cuando llame a la función "c.itermonthdays", comenzará a contar los días a partir del jueves y es posible que el jueves no comience con la fecha 1st< /sup> de abril podría ser el 28tho el 29th de marzo, por lo que cuando ejecutes el código comenzará a contar los días a partir del 28th de marzo y cualquier día posterior hasta el 1st de abril. Estos días se contarán como cero y en el resultado verá estos ceros y lo mismo se aplica al final del mes.
- Entonces, excepto las fechas 1-30, todas las fechas del mes anterior y posterior aparecerán en el resultado como ceros.
Paso 4) Puede obtener los datos del sistema local, como meses o días laborables, etc.
- El resultado aquí muestra que hemos impreso el nombre de los meses del sistema local. Del mismo modo, también puede buscar el nombre de los días de la semana como se muestra a continuación.
- La salida dependerá del sistema local, supongamos que si su sistema local es de otro país, dará la salida según la configuración local de ese país. Aquí tenemos meses, así que no habrá diferencia, pero si es una semana o un día, seguramente 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 una semana. Quiere saber la fecha del primer lunes de cada mes. Puedes usar este código
- mycal=calendar.monthcalendar(2025, mes) creará un calendario para el mes
- Establezca las variables semana1 y semana2 en la primera y segunda semana del calendario.
- Verifique si la Semana 1 contiene el lunes, establezca el día de auditoría
- De lo contrario, establezca el día de auditoría como el primer lunes de la semana 2.
- El resultado muestra la fecha del primer lunes de ese mes.
- La duración de este objeto Cal será cierta, según la cantidad de semanas que haya en el mes. En nuestro caso, serán uno o dos, por lo que el primer lunes de la semana será la primera semana con mayor frecuencia, pero si no, considere la segunda semana. Veamos en detalle por qué también consideramos la segunda semana.
- Aquí estamos usando la constante lunes del calendario, el objeto calendario le proporciona constantes que representan el domingo, lunes, martes, etc., etc. Los hemos visto anteriormente. Entonces, si en la semana uno el día representado por la constante lunes no es igual a 0, recuerda que los ceros significan días que pertenecen a otro mes. Entonces, en este caso, si es cero, 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 semana uno. De lo contrario, si es 0, entonces el primer lunes no está en la primera semana del mes, debe estar en la segunda.
- Entonces digo, está bien, establezca mi variable de día de auditoría para que sea el lunes representado por la Semana dos. Entonces, el día de la auditoría volverá con el día de la primera o segunda semana.
Aquí está el código completo.
Ejemplo de Python 2
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)
Ejemplo de Python 3
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))
Resumen
- En Python, puedes formatear el calendario de la manera que quieras, ya que puedes cambiar el día del mes para comenzar.
- Imprime el Calendario en formato HTML
- Obtener los datos del sistema local, como meses o días laborables.
- Obtenga la lista del día específico durante todo un año.