Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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.