from tkinter import *
def converter_para_segundos(entrada):
partes = entrada.split(":")
partes = [float(p) for p in partes]
if len(partes) == 1:
return partes[0] # só segundos
elif len(partes) == 2:
minutos, segundos = partes
return minutos * 60 + segundos
elif len(partes) == 3:
horas, minutos, segundos = partes
return horas * 3600 + minutos * 60 + segundos
else:
raise ValueError("Formato inválido. Use ss, mm:ss ou hh:mm:ss.")
def limpar():
penalizações_entrada.delete(0, END)
Tempo_entrada.delete(0, END)
resultado_texto.config(text="")
def app():
try:
tempo_str = Tempo.get()
penalizacoes = int(penalizações.get())
tempo_base = converter_para_segundos(tempo_str)
tempo_total = tempo_base + (penalizacoes * 60)
horas = int(tempo_total // 3600)
minutos = int((tempo_total % 3600) // 60)
segundos = tempo_total % 60
# Exibindo o resultado
if horas > 0:
resultado_texto.config(text=f"Tempo total com penalizações: {horas}h {minutos}min {segundos:.2f}s")
elif minutos > 0:
resultado_texto.config(text=f"Tempo total com penalizações: {minutos}min {segundos:.2f}s")
else:
resultado_texto.config(text=f"Tempo total com penalizações: {segundos:.2f}s")
except ValueError:
resultado_texto.config(text="Erro: Formato inválido. Use ss, mm:ss ou hh:mm:ss.")
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Contar a penalização")
titulo = Label(text="Contar a penalização", font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.18, rely=0.05)
texto_sub1 = Label(text="Tempo obtido (formato ss, mm:ss ou hh:mm:ss)",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.08, rely=0.25)
Tempo = StringVar()
Tempo_entrada = Entry(textvariable=Tempo, font=("Arial", "12", "bold"), bg="white", fg="blue", justify='center')
Tempo_entrada.place(relx=0.28, rely=0.33, relwidth=0.45)
texto_sub2 = Label(text="Número de penalizações :",
font=("Arial", "18", "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.08, rely=0.45)
penalizações = StringVar()
penalizações_entrada = Entry(textvariable=penalizações, font=("Arial", "12", "bold"), bg="white", fg="blue",
justify='center')
penalizações_entrada.place(relx=0.55, rely=0.46, relwidth=0.34)
but1 = Button(text="Calcular", bd=2, bg='#107db2', fg='white', font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.65, relwidth=0.25, relheight=0.1)
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.65, 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.65, relwidth=0.25, relheight=0.1)
resultado_texto = Label(text="", font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15)
root.mainloop()