Segue abaixo uma possível solução em Python para a conversão de uma data: ```python from datetime import datetime def converter_data(): data = input("Digite uma data no formato DD/MM/AAAA: ") try: data_convertida = datetime.strptime(data, '%d/%m/%Y') data_formatada = data_convertida.strftime('%d de %B de %Y') return f"{data} - {data_formatada}" except ValueError: return "Data inválida" print(converter_data()) ``` Explicação do código: - A função `converter_data()` solicita ao usuário que digite uma data no formato DD/MM/AAAA e armazena o valor digitado na variável `data`. - Em seguida, a função tenta converter a entrada do usuário para um objeto `datetime` utilizando o método `strptime()`. Caso a conversão seja bem sucedida, a data convertida é armazenada na variável `data_convertida`. - A função formata a data de acordo com as especificações utilizando o método `strftime()` e armazena o resultado na variável `data_formatada`. - Por fim, a função retorna uma string contendo a data digitada pelo usuário (com as barras) e a data formatada no formato "DD de mêsPorExtenso de AAAA". Caso a entrada do usuário não possa ser convertida para uma data válida, a função retorna a string "Data inválida".
Esta é a estrutura em python:
def converter_data(data): """Converte uma data no formato DD/MM/AAAA para um formato mais legível. Args: data: A data a ser convertida, no formato DD/MM/AAAA. Returns: A data convertida, no formato 'DD de mêsPorExtenso de AAAA'. Raises: ValueError: Se a data for inválida. """ # Valida a data try: dia, mes, ano = data.split("/") dia = int(dia) mes = int(mes) ano = int(ano) if mes < 1 or mes > 12: raise ValueError("Mês inválido.") if dia < 1 or dia > 31: raise ValueError("Dia inválido.") if ano < 1 or ano > 9999: raise ValueError("Ano inválido.") except ValueError: return "Data inválida" # Converte a data para o formato desejado data_formatada = f"{dia} de {meses_extensos[mes]} de {ano}" return data, data_formatada meses_extensos = { 1: "Janeiro", 2: "Fevereiro", 3: "Março", 4: "Abril", 5: "Maio", 6: "Junho", 7: "Julho", 8: "Agosto", 9: "Setembro", 10: "Outubro", 11: "Novembro", 12: "Dezembro", }
Para escrever sua resposta aqui, entre ou crie uma conta
Compartilhar