Coding for KidsCoding for Kids
Niveles CreativosDesafíosGuía del Maestro
Votar por funciones
Curso Avanzado de Desarrollo en Python
Capítulo
>
Nivel

Módulos de Cadenas y Tiempo
Módulo de Calendario

Objetivo

Revisa el calendario y establece fechas para algunos de los plazos de entrega utilizando el módulo Calendar.

Hay varios envíos que han llegado y cronogramas que deben cumplirse para que puedan distribuirse en la nueva construcción de la granja. Anteriormente usábamos el módulo date para configurar etiquetas de envío; aquí vamos a configurar cronogramas usando el módulo calendar. Para aprovechar las clases y funciones del módulo, utiliza import calendar para importar todos los materiales relevantes.

Para nuestros propósitos, usaremos las siguientes funciones del módulo calendar:

  • calendar.calendar(): Muestra el calendario completo del año, toma un (1) argumento, que es el año que deseas mostrar.
  • calendar.month(): Muestra un calendario para un solo mes, toma dos (2) argumentos, el año y el mes.
  • calendar.isleap(): Verifica si un año es bisiesto, toma un (1) argumento, que es el año a verificar.
  • calendar.leapdays(): Verifica la cantidad de días bisiestos acumulados a lo largo de los años, toma dos (2) argumentos que representan los años que comprenden el período que deseas verificar.
  • itermonthdays(): Utiliza la clase Calendar(), itera a través de todos los días del mes, toma dos argumentos, el año y el mes.
  • itermonthdates(): Utiliza la clase Calendar(), itera a través de todas las fechas del mes, toma dos argumentos, el año y el mes.
  • monthdayscalendar(): Utiliza la clase Calendar(), itera a través de todas las semanas del mes, toma dos argumentos, el año y el mes. Almacena los datos en una lista anidada.
  • monthdays2calendar(): Igual que la función anterior pero almacena semanas y días juntos en una lista bidimensional.

Para comenzar, dirígete a la marca X dorada y revisa el calendario, crea una variable llamada cal y almacena el valor de calendar.calendar() y añade el año 2026 como argumento, de esta manera: cal = calendar.calendar(2026). Utiliza la función display() para mostrar la variable cal que acabas de configurar.

Después de revisar y mostrar el calendario, dirígete a la marca X clara y revisa la hoja de cálculo sobre el escritorio. Utiliza la función read() para revisar el memorando de la fecha programada del suministro. Crea dos variables, una llamada year y otra llamada month, y asígnales la información que has leído.

Crea una variable llamada calendar_month y almacena el valor de la función calendar.month() utilizando las variables year y month como argumentos. Utiliza la función display() para mostrar el mes del calendario que se usará para establecer los cronogramas de distribución.

Dirígete a la marca X oscura sobre la alfombra verde, aquí anotaremos algunos puntos de datos para asegurarnos de que los cronogramas no se desplacen. Crea dos variables, una llamada leap_year y otra leap_days. Para la variable leap_year, almacena el resultado de calendar.isleap() y establece 2026 como argumento. Esto te permitirá verificar si el año actual del proyecto es bisiesto. Para la variable leap_days, almacena el valor de calendar.leapdays() y añade los valores: 2020 y 2027 como argumentos. Esto verifica la cantidad de días bisiestos que han ocurrido a lo largo de toda la duración del proyecto. Utiliza la función pre-escrita write() y añade leap_year y leap_days para registrar los datos.

Dirígete a la marca X oscura sobre la alfombra roja y frente al escritorio, aquí delinearemos el cronograma del mes. Crea una variable llamada date y almacena el valor de calendar.Calendar(), esto crea un objeto de clase al que podremos hacer referencia más adelante. Crea otra variable llamada day_roster y asígnale una cadena vacía, de esta manera: day_roster = "".

Pre-escrito en el editor hay un bucle for que itera a través del calendario y delimita las fechas. Utiliza la función itermonthdays() y añade las variables year y month que creaste anteriormente como argumentos. Añade los elementos faltantes según sea necesario para sumar el listado.

for day in dates.itermonthdays(-insert value-, -insert value-): entry = "Day: %s \n" % (day) day_roster += entry

Una vez configurado el bucle, procede a crear una duplicación de este bucle; sin embargo, reemplaza la función itermonthdays() con itermonthdates() y añade las variables year y month como argumentos. Para la variable entry, haz que registre los datos de la siguiente manera: entry = "%s \n" % (day). Estos nos darán las fechas completas de la duración del proyecto. Utiliza la función pre-escrita display() con la variable day_roster para mostrar el listado completo de días del proyecto en el calendario.

Dirígete a la marca X oscura sobre la alfombra azul y frente al memorando, aquí configuraremos las semanas de seguimiento del proyecto catalogadas en listas. Crea una variable llamada weeks y almacena el valor de calendar.Calendar(), esto crea un objeto de clase al que podemos hacer referencia con las funciones. Toma la variable month y reemplaza su valor por 7 para avanzar en el cronograma con el que estamos trabajando, de esta manera: month = 7.

Crea una variable llamada week_roster y asígnale una cadena vacía, de esta manera: week_roster = "". Pre-escrito en el editor hay un bucle for que itera a través del calendario y delimita los días de la semana. Utiliza la función monthdayscalendar() y añade las variables year y month que creaste anteriormente como argumentos. Añade los elementos faltantes según sea necesario para sumar el listado.

for day in weeks.monthdayscalendar(-insert value-, -insert value-): entry = "%s \n" % (day) week_roster += entry

Una vez configurado el bucle, procede a crear una duplicación de este bucle; sin embargo, reemplaza la función monthdayscalendar() con monthdays2calendar() y añade las variables year y month como argumentos. Esto nos dará las fechas completas de la duración del proyecto. Utiliza la función pre-escrita display() con la variable week_roster para mostrar el listado completo de días hábiles del proyecto en el calendario, a fin de completar el nivel.

Libro de Código