Calcula a idade da pessoa em dias
Publicado por David Wilian Oliveira de Sousa (última atualização em 26/10/2011)
[ Hits: 29.838 ]
Homepage: http://respostasaoateismo.blogspot.com
Esse programa é uma versão melhorada do script: http://www.vivaolinux.com.br/script/Calcula-quantos-dias-uma-pessoa-viveu/
Só que eu incluí várias verificações de data, deu pra brincar bastante com IFs e também com dicionários e com o módulo datetime.
# !/usr/bin/python # Encoding: UTF-8 # Calcula quantos dias de vida uma pessoa teve dado o dia, mes e ano de seu nascimento. # Autor: David Wilian Oliveira de Sousa - adaptado de Ewerton Tiago de Azevedo # Data: 26-10-2011 #configurações iniciais import datetime hoje=datetime.date.today() anoAtual= hoje.strftime("%Y") meses = { 'janeiro' : 1 , 'fevereiro' : 2 , 'marco' : 3 , 'abril' : 4 , 'maio' : 5 , 'junho' : 6 , 'julho' : 7 , 'agosto' : 8 , 'setembro' : 9 , 'outubro' : 10 , 'novembro' : 11 , 'dezembro' : 12 } meses1 = { 1 : 'janeiro' , 2 : 'fevereiro' , 3 : 'marco', 4 : 'abril' , 5 : 'maio' , 6 : 'junho', 7 : 'julho', 8 : 'agosto' , 9 : 'setembro' , 10 : 'outubro' , 11 : 'novembro' , 12 : 'dezembro' } bissexto = False #dados forncecidos coletandodados = True while coletandodados == True: dia= input("Digite o dia do seu nascimento \nExemplo: 31 \n" ) mes= input("\n Digite o mes do seu nascimento (numero ou por extenso entre aspas)\nExemplos: 12 , 'agosto', 'marco'") print type(mes) # #Testa se o mês existe if type(mes) is str: if meses.has_key(mes) == True: print mes in meses mes= meses[mes] print mes elif mes in meses == False: print "nome de mes invalido. Tente novamente." continue # #Testa se o dia é compatível com o mês if type(mes) is int: if mes == 1 or mes == 3 or mes == 5 or mes == 7 or mes == 8 or mes == 10 or mes ==12: if dia > 31: print "Esse mes possui somente 31 dias." continue if mes == 4 or mes == 6 or mes == 9 or mes == 11: if dia > 30: print "Esse mes possui somente 30 dias." continue if mes == 2: if dia == 29: bissexto = True print "Sera verificado se o ano e bissexto" elif dia > 29: print "Fevereiro tem no maximo 29 dias!" continue ano=input("\n Digite o ano do seu nascimento (a partir de 1583) \n Exemplo: 1990 \n ") if ano < 1583: print "Nao e possivel calcular para antes de 1583, o calendario que usamos hoje nao existia." continue # #Verifica se o ano é bissexto if bissexto == True: if ano % 100 == 0: if ano % 400 != 0: print "Esse ano nao e bissexto, portanto nao possui 29 de fevereiro." continue elif ano % 100 != 0: if ano % 4 != 0: print "Esse ano nao e bissexto, portanto nao possui 29 de fevereiro." continue print "Esse ano e bissexto." #Verifica se a pessoa "nasceu no futuro": if ano > anoAtual: print "Voce nasceu no futuro?" continue print "Sua data de nascimento e: ", dia, "de", meses1[mes], "de", ano, "\n" confirma = raw_input("Confirma sua data de nascimento (s/n)? ") if confirma == 's': coletandodados = False # Cálculos # fica bem facil usando o modulo datetime niver = datetime.date(ano, mes, dia) idadeemdias = hoje - niver print "Sua idade em dias e ", idadeemdias.days, "dias."
Plano de fundo rotatório no Gnome
Gerador de referência cruzada de texto
Adicione a opção Redimensionar e rotacionar imagens ao Nautilus
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Proteja seu Linux Mint com o Timeshift: Restaure o sistema mesmo que ele não inicie!
Instalando Google Chrome no Debian 13
Alguém pode me recomendar um editor de textos? (0)
meus dois pen drives não são mais reconhecidos pelo meu PC apos tentar... (1)