Python Tutorial de CALENDARIO con ejemplo
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 permite editar el calendario y utilizarlo segรบn sus necesidades.
Veamos quรฉ podemos hacer con Python Calendario.
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 Python, puedes formatear el calendario ya que puedes cambiar el dรญa del mes para empezar
- Code Lรญnea # 4: str= c.formatmonth(2025,1) Estamos creando 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 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) bucles durante los dรญas de un mes utilizando c.itermonthday (2025,4), 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 superposiciรณn.ping mes, 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 dรญas a partir del jueves y es posible que su jueves no comience con la fecha 1.st de abril podrรญa ser el 28th o 29th de marzo, por lo que cuando ejecutes el cรณdigo empezarรก a contar 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 que se muestra aquรญ muestra que hemos impreso el nombre de los meses desde el sistema local. Asimismo, 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, supongamos que si su sistema local es el de otro paรญs, entonces 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 recuperar la lista del dรญa especรญfico durante todo un aรฑo. Por ejemplo, cada primer dรญa hay un dรญa de auditorรญa. Monday de una semana. ยฟQuieres saber la fecha de la primera Monday para 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.
- Compruebe si la Semana 1 contiene Monday, establecer 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 serรก cierta, segรบn la cantidad de semanas que haya en el mes. En nuestro caso, serรกn uno o dos como tal primero. Monday de la semana serรก en 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 del calendario. Monday, el objeto calendario te proporciona constantes que representan el domingo, Monday, Martes, y asรญ sucesivamente. Los hemos visto anteriormente. Entonces, si en la semana uno el dรญa representado por el Monday constante no es igual a 0, recuerde que ceros significa dรญas que pertenecen a otro mes. Entonces, en este caso, si es cero, serรก un Monday que pertenece al mes anterior. Pero si el primero Monday 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 dรญa de auditorรญa serรก dentro de la semana uno. Monday no es en la primera semana del mes, tiene que ser en la segunda.
- Entonces digo bien, establezca mi variable de dรญa de auditorรญa para que sea la Monday 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
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))
Resumen
- In Python, puede formatear el calendario de la forma que desee, ya que puede 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.







