Coding for KidsCoding for Kids
Níveis CriativosDesafiosGuia do Professor
Votar em funcionalidades
Curso Avançado de Desenvolvimento Python
Capítulo
>
Nível

Módulos de String e Tempo
Módulo de Calendário

Objetivo

Verifique o calendário e defina datas para alguns dos prazos de entrega utilizando o módulo Calendar.

Há várias remessas que chegaram e cronogramas que precisam ser cumpridos para que possam ser distribuídas na nova construção da fazenda. Anteriormente, usamos o módulo date para configurar as etiquetas de envio; aqui, vamos definir os cronogramas utilizando o módulo calendar. Para utilizar as classes e funções do módulo, use import calendar para importar todos os materiais relevantes.

Para os nossos propósitos, usaremos as seguintes funções do módulo calendar:

  • calendar.calendar(): Exibe o calendário completo do ano, recebe um (1) argumento, que é o ano que você deseja exibir.
  • calendar.month(): Exibe um calendário para um único mês, recebe dois (2) argumentos, o ano e o mês.
  • calendar.isleap(): Verifica se um ano é bissexto, recebe um (1) argumento, que é o ano a ser verificado.
  • calendar.leapdays(): Verifica o número de dias bissextos acumulados entre os anos, recebe dois (2) argumentos que abrangem o período que você deseja verificar.
  • itermonthdays(): Utiliza a classe Calendar(), itera por todos os dias do mês, recebe dois argumentos, o ano e o mês.
  • itermonthdates(): Utiliza a classe Calendar(), itera por todas as datas do mês, recebe dois argumentos, o ano e o mês.
  • monthdayscalendar(): Utiliza a classe Calendar(), itera por todas as semanas do mês, recebe dois argumentos, o ano e o mês. Armazena os dados em uma lista aninhada.
  • monthdays2calendar(): Igual à função anterior, mas armazena semanas e dias juntos em uma lista bidimensional.

Para começar, dirija-se à marca dourada X e verifique o calendário, crie uma variável chamada cal e armazene o valor de calendar.calendar() adicionando o ano 2026 como argumento, assim: cal = calendar.calendar(2026). Use a função display() para exibir a variável cal que você acabou de configurar.

Após verificar e exibir o calendário, vá à marca clara X e verifique a planilha na mesa. Use a função read() para conferir o memorando com o mês agendado da entrega. Crie duas variáveis, uma chamada year e outra chamada month, e as preencha com as informações lidas.

Crie uma variável chamada calendar_month e armazene o valor da função calendar.month() utilizando as variáveis year e month como argumentos. Use a função display() para exibir o mês do calendário, que será utilizado para definir os cronogramas de distribuição.

Dirija-se à marca escura X sobre o tapete verde, onde iremos anotar alguns pontos de dados para garantir que os cronogramas não estejam desfasados. Crie duas variáveis, uma chamada leap_year e outra chamada leap_days. Para a variável leap_year, armazene o resultado de calendar.isleap() e defina 2026 como argumento. Isso permitirá verificar se o ano do projeto é bissexto. Para a variável leap_days, armazene o valor de calendar.leapdays() e insira os valores: 2020 e 2027 como argumentos. Isso verifica a quantidade de dias bissextos que ocorreram durante toda a duração do projeto. Use a função já escrita write() e adicione leap_year e leap_days para anotar os dados.

Dirija-se à marca escura X sobre o tapete vermelho e encare a mesa; aqui, iremos delinear o cronograma do mês. Crie uma variável chamada date e armazene o valor de calendar.Calendar(), isto cria um objeto de classe que podemos referenciar mais tarde. Crie outra variável chamada day_roster e atribua uma string vazia, isto nos permitirá armazenar a lista de dias em uma string. Assim: day_roster = "".

No editor já está pré-escrito um laço for que itera pelo calendário e delimita as datas. Use a função itermonthdays() e adicione as variáveis year e month que você criou anteriormente como argumentos. Adicione os itens faltantes conforme necessário para acumular a contagem do registro.

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

Depois que o laço estiver configurado, prossiga criando uma duplicata deste laço, porém substitua a função itermonthdays() por itermonthdates() e adicione as variáveis year e month como argumentos. Para a variável entry, registre os dados assim: entry = "%s \n" % (day). Esses comandos nos fornecerão as datas completas da duração do projeto. Use a função já escrita display() com a variável day_roster para exibir o registro completo dos dias do projeto no calendário.

Dirija-se à marca escura X sobre o tapete azul e encare o memorando; aqui, configuraremos as semanas de acompanhamento do projeto catalogadas em listas. Crie uma variável chamada weeks e armazene o valor de calendar.Calendar(), isto cria um objeto de classe que podemos referenciar com as funções. Pegue a variável month e substitua o seu valor por 7 a fim de avançar no cronograma com o qual estamos trabalhando, assim: month = 7.

Crie uma variável chamada week_roster e atribua uma string vazia, isto nos permitirá armazenar o registro das semanas em uma string. Assim: week_roster = "". No editor já está pré-escrito um laço for que itera pelo calendário e delimita os dias da semana. Use a função monthdayscalendar() e adicione as variáveis year e month que você criou anteriormente como argumentos. Adicione os itens faltantes conforme necessário para acumular a contagem do registro.

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

Depois que o laço estiver configurado, prossiga criando uma duplicata deste laço, porém substitua a função monthdayscalendar() por monthdays2calendar() e adicione as variáveis year e month como argumentos. Esses comandos nos fornecerão as datas completas da duração do projeto. Use a função já escrita display() com a variável week_roster para exibir o registro completo dos dias de semana do projeto no calendário, concluindo assim o nível.

Livro de Código