Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Desafio Opcional Data. Minha Implementação.

import sys

class Data:
    def __init__(self, dd, mm, yyyy):

        if 1 <= mm <= 12:
            self.mes = mm

            if mm in [1, 3, 5, 7, 8, 10, 12]:
                if 1 <= dd <=31:
                    self.dia = dd
                else:
                    print("Dia Inválido. Dia deve estar entre 1 e 31")
                    sys.exit(-1)
            elif mm in [4,6,9,11]:
                if 1 <= dd <=30:
                    self.dia = dd
                else:
                    print("Dia Inválido. Dia deve estar entre 1 e 30")
                    sys.exit(-1)
            elif mm == 2:
                if 1 <= dd <=29:
                    self.dia = dd
                else:
                    print("Dia Inválido. Dia deve estar entre 1 e 28. 29 Para anos Bisextos")
                    sys.exit(-1)
        else:
            print('Valor inválido para Mês. Deve estar entre 1 e 12')
            sys.exit(-1)

        if len(str(yyyy)) == 2:
            if int(yyyy) <= 70:
                self.ano = '20'+ str(yyyy)
            elif int(yyyy) > 70:
                self.ano = '19'+ str(yyyy)
        elif len(str(yyyy)) == 4:
            self.ano = yyyy
        else:
            print('Valor para ano Invárlido. O ano deve ter 2 ou 4 dígitos.')
            sys.exit(-1)

    def formatada(self):
        print(f'{self.dia}/{self.mes}/{self.ano}')

2 respostas
solução!

Oii Felipe, como você estpa?

UAAAUUU! Você foi muito além do proposto, mandou super bem, ficou bem completa sua implementação. Parabéns!

Futuramente você verá que para trabalhar com datas no Python é comum utilizarmos a biblioteca datetime e ela possui todas essas validações, inclusive aqui na Alura temos um artigo que mostra como podemos trabalhar com esse módulo: Python datetime: Lidando com datas e horários.

Qualquer dúvida estou por aqui, tá bom?

Abraços e bons estudos!

Valeeeu Nádia! Bom saber que estou no caminho certo...rs.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software