Estou com dúvidas em um código sobre informar a vida do usuário em dias. O usuário deve informar o ano de nascimento, mês de nascimento (em número), dia de nascimento, ano atual, mês atual (em números) e dia atual. Se o usuário informar uma dia que seja negativo ou maior que 30, ou se informar um mês negativo ou maior que 12 ou um ano negativo ou ano atual menor que o ano de nascimento, o código deverá repetir infinitamente até ser informado a data correta. No final, o programa deverá ter como saída a data de vida do usuário em dias considerando que não existe ano bissexto e todos os meses possuem 30 dias.
estava pensando na seguinte lógica:
Se o mês de nascimento é menor do que o mês atual, significa que o usuário completou aniversário, então o ano será (ano atual - ano de nascimento)*360. Além disto, o mês de nascimento será o (((mês de nascimento-1)*30)+diadenascimento). O mes atual será o (((mesatual-1)*30)+diaatual). para calcular tudo, pega mesatual-mesdenascimento+ano
diadonascimento = 1
mesdonascimento = 1
anodenascimento = 1
diaatual = 1
mesatual = 1
anoatual = 1
#while True:
diadonascimento = int(input("Digite, por gentileza o dia do seu nascimento: "))
while diadonascimento <=0 or diadonascimento>30:
diadonascimento = int(input("Digite, por gentileza o dia do seu nascimento: "))
mesdonascimento = int(input("Digite, por gentileza o mês do seu nascimento, em números: "))
while mesdonascimento <=0 or mesdonascimento>12:
mesdonascimento = int(input("Digite, por gentileza o mês do seu nascimento, em números: "))
anodenascimento = int(input("Digite, por gentileza o ano do seu nascimento: "))
while anodenascimento <=0:
anodenascimento = int(input("Digite, por gentileza o ano do seu nascimento: "))
diaatual = int(input("Digite, por gentileza o dia atual: "))
while diaatual <=0 or diadonascimento>30:
diaatual = int(input("Digite, por gentileza o dia atual: "))
mesatual = int(input("Digite, por gentileza o mês atual, em números: "))
while mesatual <=0 or mesatual >12:
mesatual = int(input("Digite, por gentileza o mês atual, em números: "))
anoatual = int(input("Digite, por gentileza o ano atual: "))
while anoatual <=0 or anoatual<anodenascimento:
anoatual = int(input("Digite, por gentileza o ano atual: "))
if mesdonascimento<mesatual:
ano = int((anoatual-anodenascimento)*360)
mes1 = int(((mesdonascimento-1)*30)+diadonascimento)
mes2 = int(((mesatual-1)-30)+diaatual)
mes = int(mes2-mes1)
total=ano+mes
print(f"Sua idade atual é {total} dias")`Texto pré-formatado`
desde já, muito obrigado.