Debugando um Conversor de Data Simples
Debugando com o GitHub Copilot - 1/3
Descrição
Você recebeu um código que faz a conversão de datas do formato "yyyy-mm-dd" para o formato "dd/mm/yyyy", mas ele contém erros de lógica e sintaxe. O objetivo desse desafio é debugar o código do template e corrigir o problema, fazendo com que ele converta corretamente datas do formato "yyyy-mm-dd" para o formato "dd/mm/yyyy".
Uma opção para te ajudar durante o processo de depuração é o uso do GitHub Copilot, que pode sugerir correções de código.
Entrada
A entrada será uma string representando uma data no formato "yyyy-mm-dd" (exemplo: 2024-12-25).
Saída
Deverá retornar a data convertida para o formato "dd/mm/yyyy". Se a entrada não estiver no formato correto, deve ser retornada a mensagem "Formato de data inválido."
Exemplos
A tabela abaixo apresenta exemplos com alguns dados de entrada e suas respectivas saídas esperadas. Certifique-se de testar seu programa com esses exemplos e com outros casos possíveis.
Entrada | Saída |
---|---|
2024-12-25 | 25/12/2024 |
2020-01-01 | 01/01/2020 |
1999-07-04 | 04/07/1999 |
Resolução
data_input = input()
def converter_para_dia_mes_ano(data_str):
try:
ano, mes, dia = data_str.split("-")
if (len(ano) != 4 or len(mes) != 2 or len(dia) != 2 or
not ano.isdigit() or not mes.isdigit() or not dia.isdigit()):
return "Formato de data inválido."
mes_int = int(mes)
dia_int = int(dia)
if mes_int < 1 or mes_int > 12 or dia_int < 1 or dia_int > 31:
return "Formato de data inválido."
return f"{dia}/{mes}/{ano}"
except:
return "Formato de data inválido."
if "-" in data_input:
print(converter_para_dia_mes_ano(data_input))
else:
print("Formato de data inválido.")
Para encontrar outras soluções, verifique aqui.
Caso encontre algum erro ou tenha sugestões, clique aqui e abra uma issue no Github.