from datetime import date
# Função verifica se a data é válida
def data_valida(dia, mes, ano):
if mes < 1 or mes > 12:
return False
if mes == 2:
if ano % 4 == 0 and (ano % 100 != 0 or ano % 400 == 0):
if dia < 1 or dia > 29:
return False
else:
if dia < 1 or dia > 28:
return False
elif mes in [4, 6, 9, 11]:
if dia < 1 or dia > 30:
return False
else:
if dia < 1 or dia > 31:
return False
return True
# Função calcular idade do aluno considerando o dia do mês e ano
def calcular_idade(data_nascimento):
data_atual = date.today()
idade = data_atual.year - data_nascimento.year - ((data_atual.month, data_atual.day) < (data_nascimento.month, data_nascimento.day))
return idade
nome_aluno = input("Digite o nome do aluno: ")
while True:
try:
data_nascimento = input("Digite a data de nascimento do aluno (dd/mm/aaaa): ")
dia, mes, ano = map(int, data_nascimento.split('/'))
if not data_valida(dia, mes, ano):
print("Data inválida. Tente novamente.")
continue
break
except ValueError:
print("Formato de data inválido. Tente novamente.")
data_nascimento = date(ano, mes, dia)
data_atual = date.today()
idade = data_atual.year - data_nascimento.year - ((data_atual.month, data_atual.day) < (data_nascimento.month, data_nascimento.day))
print(f"{nome_aluno.capitalize()} tem {idade} anos.")