Exercícios Resolvidos de Módulo time

Ver Teoria

Enunciado

Um mercado contratou você para criar um programa que confere e classifica a validade de seus produtos. Seu programa deve receber do usuário o dia, mês e ano da validade e responder:

  • "Tá tranquilo", caso falte mais de 3 meses para o vencimento.
  • "Alerta", caso falte menos de 3 meses e mais de um mês para o vencimento.
  • "Ferrou", caso falte menos de um mês para o vencimento.
  • "Joga esse bagulho fora!", caso esteja vencido.

Você deve, obrigatoriamente, escrever e usar a função checaDiferencaDeTempo(), que recebe dia, mês, ano de validade e o tempo atual desde 01/01/1970.

Passo 1

Fala aí, seu doido! A gente já tá ligado que vamos precisar usar o módulo time pra resolver essa questão, e sempre é uma boa ideia fazer as importações no início. Então, bora lá!

Agora, bora fazer a função com o nome que foi pedido.

Passo 2

Olha, tá escrito até os parâmetros que a função tem que ter, então vamos só obedecer, ok? Tipo assim:

Colocamos igualzinho o enunciado pediu. Agora, bora desenvolver a função. A gente pode converter o dia, mês e ano pra segundos e ai a gente consegue fazer a subtração dos tempos. Pra isso, vamos usar a função strptime() do módulo time. Essa função consegue converter um tempo em data, e recebe como parâmetro duas strings: o texto e a formatação. Olha:

Criamos a variável validade e colocamos dentro dela o resultado da função strptime. No primeiro parâmetro a gente passou um texto (usei formatação de string, percebeu? tem que estar ligado nisso porque é importante!!!). No segundo, passei uma string no mesmo formato mas, em vez dos dados reais, usei representações %d para dia, %m para mês e %Y para ano. Assim, a gente consegue dizer pra biblioteca onde estão as informações que a gente passou na string! Mas essa função tá retornando uma tupla com várias informações sobre a data, sendo que a gente só quer a quantidade de segundos em relação à época (01/01/1970). Pra isso, vamos usar a função mktime.

quer a diferença de dias. Pra fazer converter segudos pra dias, a gente pode dividir por (60*60*24).

Pronto! Agora, a gente pega a diferença em segundos, converte pra dias e retorna essa diferença. Falta a gente finalizar nosso programa!

Passo 3

O enunciado fala pra gente pegar do usuário os dados de dia, mês e ano. Vamos usar o input pra isso.

Depois de pegar os dados e os converter pra inteiro, a gente chama a função que criamos pra descobrir quantos dias de diferença tem entre a data de validade e a data atual. Vamos ver em qual classificação o bagulho entra agora…

E pronto! Finalizamos o exercício, brother! Valeuu

Resposta