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 Data/Hora

Objetivo

Ajustar registros e configurar datas de envio para os suprimentos utilizando funções do módulo Date & Time.

O piso inferior do anexo da nova área de construção é um armazém que contém alguns dos suprimentos recentemente entregues, que foram embalados e estão prontos para serem enviados para as áreas ao redor da nova construção. Eles precisam ser rotulados com suas datas e horários corretos, e garantir que quaisquer etiquetas que já foram aplicadas tenham todas as informações relevantes. Para fazer isso, poderíamos dedicar tempo para escrever e formatar manualmente datas e horários, mas há uma maneira muito mais rápida de fazer isso utilizando o módulo de data e hora.

O módulo de data e hora é importado escrevendo import datetime, isso desbloqueia uma série de funções poderosas que permitem ler e definir horários e datas formatados que você pode armazenar em objetos. Você também pode usar: from datetime import timezone, timedelta para configurar fusos horários. As seguintes funções são desbloqueadas ao importar o módulo:

  • datetime.datetime(): Permite definir e armazenar um horário de sua escolha, recebe vários argumentos da seguinte forma: year, month, day, hour, minute, second, microsecond, timezone. Você não precisa inserir todos os argumentos, apenas aqueles que deseja usar.
  • datetime.datetime.now(): Retorna a sua data e hora atual, como apareceria em um relógio.
  • datetime.datetime.date(): Retorna apenas a data do datetime, sem o horário.
  • datetime.datetime.time(): Retorna apenas o horário do datetime, sem a data.
  • datetime.datetime.timestamp(): Retorna o timestamp do datetime como um código UNIX.
  • timezone(): Permite definir um fuso horário para uso com seus argumentos de data e hora.
  • datetime.strftime(): Permite extrair informações específicas de data e hora e formatá-las de acordo com sua preferência, utilizando códigos específicos. Para nossos propósitos, usaremos os seguintes códigos:
    • "%a" : Dia da semana, abreviado
    • "%d" : Dia do mês
    • "%B" : Nome do mês, escrito por extenso
    • "%I" : Hora, ciclo de doze horas
    • "%M" : Minuto
    • "%p" : Meridian, AM/PM
    • "%x" : Formato de data local
    • "%X" : Formato de hora local
    • "%j" : Dia do ano
    • "%U" : Semana do ano
    • "%z" : Fuso horário UTC

Para começar, dirija-se à marca de X clara e encare a mesa, use a função read() para verificar as datas de embalagem dos embarques, bem como as datas de início e fim dos projetos. Tome nota das datas de início e fim fornecidas no documento (mês/dia/ano). Os três (3) primeiros pontos de dados escritos no memorando, assim como o fuso horário, estão pré-escritos no editor de código para facilitar o uso em funções posteriores.

Neste mesmo espaço, crie uma variável chamada today e armazene nela o valor retornado por datetime.datetime.now(). Use str() para converter o valor em uma string, de forma que fique em um formato legível, assim: today = str(datetime.datetime.now()). Utilize a função display() para registrar a data de hoje no memorando, com isso a data para as alocações de envio estará definida e você poderá começar a adicionar pontos de dados faltantes nas áreas necessárias.

Dirija-se à marca de X dourada ao lado da mesa e, aqui, iremos calcular e registrar o número de dias que este projeto levará. Existem duas variáveis escritas no editor chamadas start e end que armazenam datetime. Anote as datas de início e fim que você leu anteriormente nos espaços fornecidos. Crie uma variável chamada result e armazene nela o resultado da subtração entre as variáveis end e start. Use a função str() para converter o valor em um formato de string legível, assim: result = str(end-start). Utilize a função write() para registrar a variável result, marcando quanto tempo isso levará.

Daqui, vamos nos mover até a marca de X dourada ao lado do tapete vermelho e descer para as marcas de X ao lado das caixas do tapete vermelho na coluna à esquerda. Aqui, adicionaremos partes específicas das datas de embalagem que estão faltando nas caixas, utilizando datetime(). No editor, haverá uma data pré-escrita atribuída à variável red_date, de onde extrairmos vários dados para usar na rotulagem das caixas.

Para os tapetes vermelhos:

  • Na marca de X dourada, encare as caixas e crie uma variável chamada red_days armazenando nela a data sem o horário, usando date() da variável red_date e converta-a utilizando str(), assim: red_days = str(red_date.date()). Use a função write() para rotular as caixas utilizando red_days.

  • Na marca de X clara, encare as caixas e crie uma variável chamada red_time armazenando nela o horário sem a data, usando time() da variável red_date e convertendo-a com str(), assim: red_time = str(red_date.time()). Use a função write() para rotular as caixas utilizando red_time.

  • Na marca de X escura, encare as caixas e crie uma variável chamada red_timestamp armazenando nela o timestamp calculado a partir da variável red_date, assim: red_timestamp = red_date.timestamp(). Use a função write() para rotular as caixas utilizando red_timestamp.

Em seguida, vamos nos mover para as marcas de X em frente às caixas do tapete azul. Assim como antes, há uma série de três (3) marcas de X coloridas, neste caso referenciando a variável pré-escrita blue_date para completar os rótulos. Percorra a coluna e utilize a função strftime() para adicionar elementos faltantes aos rótulos de envio. Diferentemente das funções anteriores, esta requer um código específico para extrair e formatar os elementos na data-alvo. Por exemplo, se quisermos obter o dia da semana da variável blue_date, você usará o código "%a" com a função strftime() assim: blue_date.strftime("%a").

Para as marcas de X ao lado das caixas do tapete azul, use a função strftime() com o código específico requerido. Consulte a lista de códigos previamente apresentada de acordo com os requisitos. Para os tapetes azuis:

  • Na marca de X dourada, encare as caixas e crie uma variável chamada blue_weekday armazenando nela o dia da semana, usando strftime() da variável blue_date assim: blue_day = blue_date.strftime("%a"). Crie outra variável chamada blue_day e armazene nela o dia do mês utilizando strftime() da variável blue_date. Crie outra variável chamada blue_month e armazene nela o nome do mês, escrito por extenso, utilizando strftime() da variável blue_date. Insira as variáveis blue_weekday, blue_day e blue_month na função write() pré-escrita.

  • Na marca de X clara, encare as caixas e crie uma variável chamada blue_hour armazenando nela a hora, ciclo de doze horas, usando strftime() da variável blue_date. Crie outra variável chamada blue_minute e armazene nela o minuto usando strftime() da variável blue_date. Crie outra variável chamada blue_meridian e armazene nela o Meridian, AM/PM, utilizando strftime() da variável blue_date. Insira as variáveis blue_hour, blue_minute e blue_meridian na função write() pré-escrita.

  • Na marca de X escura, encare as caixas e crie uma variável chamada blue_local_date armazenando nela o formato de data local, usando strftime() da variável blue_date. Crie outra variável chamada blue_local_time e armazene nela o formato de hora local usando strftime() da variável blue_date. Insira as variáveis blue_local_date, blue_local_time e blue_meridian na função display() pré-escrita.

Finalmente, vamos nos mover para a marca de X dourada ao lado do tapete verde e descer para as marcas de X ao lado das caixas do tapete verde na coluna à direita. Aqui, continuaremos adicionando partes específicas das datas de embalagem que estão faltando nas caixas utilizando strftime(). No editor, haverá uma data pré-escrita atribuída à variável green_date, de onde extrairmos vários dados para rotular as caixas.

Para os tapetes verdes:

  • Na marca de X dourada, encare as caixas e crie uma variável chamada green_day armazenando nela o dia do ano utilizando strftime() da variável green_date. Use a função write() para rotular as caixas utilizando green_day.

  • Na marca de X clara, encare as caixas e crie uma variável chamada green_week armazenando nela a semana do ano utilizando strftime() da variável green_date. Use a função write() para rotular as caixas utilizando green_week.

  • Na marca de X escura, encare as caixas e crie uma variável chamada green_timezone armazenando nela o fuso horário UTC utilizando strftime() da variável green_date. Use a função write() para rotular as caixas utilizando green_timezone.

Uma vez que todos os rótulos nas marcas de X ao lado dos tapetes coloridos tenham sido registrados, o nível estará completo.

Livro de Código