clesiomatias

Calcula_tempo_de_vida_decorrido

Sep 28th, 2020
1,261
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. from datetime import datetime as d
  2.  
  3. #Criando as variaveis da hora e data atuais
  4. now = d.now()
  5. segundoAtual =now.second
  6. minAtual=now.minute
  7. horaAtual = now.hour
  8. diaAtual=now.day
  9. mesAtual=now.month
  10. anoAtual=now.year
  11. #====================
  12. '''Agora crio um conjunto de listas com os valores possveis para
  13.    datas e horarios para futura validação'''
  14.  
  15.     #lista de horas
  16. listHora=[]
  17. for i in range(25):
  18.     listHora.append(i)
  19.  
  20.     #lista de dias possíveis em um mes
  21. listDias =[]
  22. for i in range(1,32):
  23.     listDias.append(i)
  24.  
  25.     #lista de meses
  26. listMeses=[]
  27. for i in range(1,13):
  28.     listMeses.append(i)
  29.  
  30.     #lista de Anos desde 1901
  31. listAnos=[]
  32. for i in range(1901,anoAtual+1):
  33.     listAnos.append(i)
  34.  
  35.  
  36. #====================
  37. #agora começamos a receber as entradas, validando todas elas com condicionais e laços simples
  38. while True:
  39.     hora = input('Digite a hora do seu nascimento, sem os minutos (Opcional): ')
  40.     if hora == '':
  41.         hora=0
  42.         break
  43.     elif not hora.isnumeric() or int(hora) not in listHora :
  44.         print('Hora inválida! Digite um valor entre 0 e 24, ou deixe em branco')
  45.         continue
  46.     else:
  47.         hora =int(hora)
  48.         break
  49. while True:
  50.     dia = input('Digite o dia do seu nascimento: ')
  51.     if dia == ''or not dia.isnumeric() or int(dia) not in listDias :
  52.         print("Dia inválido! Digite um valor entre 1 e 31")
  53.         continue
  54.     else:
  55.         dia =int(dia)
  56.         break
  57. while True:
  58.     mes = input('Digite o mes do seu nascimento: ')
  59.     if mes == '' or not mes.isnumeric() or int(mes) not in listMeses :
  60.         print("Mes inválido! Digite um valor entre 1 e 12")
  61.         continue
  62.     else:
  63.         mes =int(mes)
  64.         break
  65. while True:
  66.     ano = input('Digite o ano do seu nascimento: ')
  67.     if ano == ''or not ano.isnumeric() or int(ano) not in listAnos :
  68.         print(f"Ano inválido! Digite um valor entre 1901 e {int(anoAtual)}")
  69.         continue
  70.     else:
  71.         ano =int(ano)
  72.         break
  73.  
  74. #====================
  75. # Agora começamos a computar os dados
  76. #====================
  77.  
  78. #Calcula os dias decorridos desde 01/01/1901 até a data de nascimento
  79. 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)
  80.  
  81. #Calcula os dias decorridos desde 01/01/1901 até a data atual
  82. 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)
  83.  
  84. #Calcula e exibe os decorridos entre as duas datas consideradas
  85. diasDecorridos = abs(diaSec2-diaSec1)
  86. horasDecorridas = diasDecorridos*24 + horaAtual
  87. minutosDecorridos= horasDecorridas*60 + minAtual
  88. segundosDecorridos = minutosDecorridos*60 + segundoAtual
  89.  
  90. print(f'Transcorreram {diasDecorridos} dias entre {dia}/{mes}/{ano} e {diaAtual}/{mesAtual}/{anoAtual}.')
  91. print(f'Você tem {horasDecorridas} horas ou\n{minutosDecorridos} minutos ou\n{segundosDecorridos} segundos de vida!')
RAW Paste Data