Calcula a idade da pessoa em dias
Publicado por David Wilian Oliveira de Sousa (última atualização em 26/10/2011)
[ Hits: 29.834 ]
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."
Calculadora para números complexos
Crivo de Eratóstenes Simples em Python
Script para fazer o Scroll Lock funcionar no Linux
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
Dica para encontrar diversos jogos Indies criativos
Instalando Discord no Debian 13
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Software livre - será que eu estou tão errado assim? (17)
Dificuldade com Ocs 2.12.3 no Debian 13 com Apache2 - Can't load ... (4)
paginação dos favoritos não funciona no vivaolinux[BU... (4)