Mundo em Python

Calculadora de Hora da Morte

from tkinter import *
from datetime import datetime, timedelta root = Tk()
root.geometry("800x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Calculadora de Hora da Morte") titulo = Label(text="Calculadora de Hora da Morte",
font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.18, rely=0.05)
texto_sub1 = Label(text="Temperatura retal medida (em Celsius) :",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.32) Temperatura = StringVar()
Temperatura_entrada = Entry(textvariable=Temperatura,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Temperatura_entrada.place(relx=0.65, rely=0.33, relwidth=0.3) def limpar():
Temperatura_entrada.delete(0, END)
resultado_texto.config(text="") def app(): try:
temp_retal_celsius = float(Temperatura.get())
temperatura_corporal_normal = 36.9
taxa_resfriamento_por_hora = 1.5

if temp_retal_celsius >= temperatura_corporal_normal:
mensagem = ("A temperatura medida é igual ou superior à temperatura corporal normal.\n"
"Isso geralmente indica que a morte ocorreu muito recentemente\n"
"(dentro de poucas horas) ou que há outros fatores envolvidos.")
elif temp_retal_celsius < 0:
mensagem = "Temperatura inválida. A temperatura não pode ser negativa."
else:
horas_desde_a_morte = (temperatura_corporal_normal - temp_retal_celsius) / taxa_resfriamento_por_hora
agora = datetime.now()
hora_putativa_morte = agora - timedelta(hours=horas_desde_a_morte) mensagem = (f"Horas totais decorridas desde a morte (estimativa): {horas_desde_a_morte:.2f} horas.\n"
f"Considerando a hora atual ({agora.strftime('%d/%m/%Y %H:%M:%S')}),\n"
f"a hora putativa da morte é: {hora_putativa_morte.strftime('%d/%m/%Y %H:%M:%S')}")
except ValueError:
mensagem = "Entrada inválida. Por favor, digite um número para a temperatura."
except Exception as e:
mensagem = f"Ocorreu um erro inesperado: {e}"
resultado_texto.config(text=mensagem)
but1 = Button(text="Calcular", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.5, relwidth=0.25, relheight=0.1) # Botão para limpar
but_limpar = Button(text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar)
but_limpar.place(relx=0.4, rely=0.5, relwidth=0.25, relheight=0.1) but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
but_sair.place(relx=0.7, rely=0.5, relwidth=0.25, relheight=0.1) resultado_texto = Label(text=" ",
font=("Arial", 12, "bold"), bg="#cfe2f3",
justify=LEFT, anchor="nw", wraplength=700)
resultado_texto.place(relx=0.05, rely=0.7, relwidth=0.9, relheight=0.25) root.mainloop()
0