Pular para o conteúdo
Bruno Dórea
Todos os posts

3 mins de leitura


Debugando um Conversor de Data Simples

Debugando com o GitHub Copilot - 1/3


Bootcamp Microsoft AI for Tech - GitHub Copilot
Bootcamp Microsoft AI for Tech - GitHub Copilot

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.

EntradaSaída
2024-12-2525/12/2024
2020-01-0101/01/2020
1999-07-0404/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.