Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from datetime import datetime as d
- #Criando as variaveis da hora e data atuais
- now = d.now()
- segundoAtual =now.second
- minAtual=now.minute
- horaAtual = now.hour
- diaAtual=now.day
- mesAtual=now.month
- anoAtual=now.year
- #====================
- '''Agora crio um conjunto de listas com os valores possveis para
- datas e horarios para futura validação'''
- #lista de horas
- listHora=[]
- for i in range(25):
- listHora.append(i)
- #lista de dias possíveis em um mes
- listDias =[]
- for i in range(1,32):
- listDias.append(i)
- #lista de meses
- listMeses=[]
- for i in range(1,13):
- listMeses.append(i)
- #lista de Anos desde 1901
- listAnos=[]
- for i in range(1901,anoAtual+1):
- listAnos.append(i)
- #====================
- #agora começamos a receber as entradas, validando todas elas com condicionais e laços simples
- while True:
- hora = input('Digite a hora do seu nascimento, sem os minutos (Opcional): ')
- if hora == '':
- hora=0
- break
- elif not hora.isnumeric() or int(hora) not in listHora :
- print('Hora inválida! Digite um valor entre 0 e 24, ou deixe em branco')
- continue
- else:
- hora =int(hora)
- break
- while True:
- dia = input('Digite o dia do seu nascimento: ')
- if dia == ''or not dia.isnumeric() or int(dia) not in listDias :
- print("Dia inválido! Digite um valor entre 1 e 31")
- continue
- else:
- dia =int(dia)
- break
- while True:
- mes = input('Digite o mes do seu nascimento: ')
- if mes == '' or not mes.isnumeric() or int(mes) not in listMeses :
- print("Mes inválido! Digite um valor entre 1 e 12")
- continue
- else:
- mes =int(mes)
- break
- while True:
- ano = input('Digite o ano do seu nascimento: ')
- if ano == ''or not ano.isnumeric() or int(ano) not in listAnos :
- print(f"Ano inválido! Digite um valor entre 1901 e {int(anoAtual)}")
- continue
- else:
- ano =int(ano)
- break
- #====================
- # Agora começamos a computar os dados
- #====================
- #Calcula os dias decorridos desde 01/01/1901 até a data de nascimento
- diaSec1 = (ano-1901)*365+(ano-1901)//4+dia+(mes-1)*31-((mes*4+23)//10)*((mes+12)//15)+((4-ano%4)//4)*((mes+12)//15)
- #Calcula os dias decorridos desde 01/01/1901 até a data atual
- diaSec2 = (anoAtual-1901)*365+(anoAtual-1901)//4+diaAtual+(mesAtual-1)*31-((mesAtual*4+23)//10)*((mesAtual+12)//15)+((4-anoAtual%4)//4)*((mesAtual+12)//15)
- #Calcula e exibe os decorridos entre as duas datas consideradas
- diasDecorridos = abs(diaSec2-diaSec1)
- horasDecorridas = diasDecorridos*24 + horaAtual
- minutosDecorridos= horasDecorridas*60 + minAtual
- segundosDecorridos = minutosDecorridos*60 + segundoAtual
- print(f'Transcorreram {diasDecorridos} dias entre {dia}/{mes}/{ano} e {diaAtual}/{mesAtual}/{anoAtual}.')
- print(f'Você tem {horasDecorridas} horas ou\n{minutosDecorridos} minutos ou\n{segundosDecorridos} segundos de vida!')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement