Ciclo Menstrual

from tkinter import *
import datetime

root = Tk()
root.geometry("500x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Ciclo Menstrual")
titulo = Label(text="Ciclo Menstrual",
font=("Arial", "38", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.13, rely=0.05)

sub1 = Label(text="Duração do seu ciclo menstrual em dias ", font=("Arial", "17", "bold"), bg="#103030", fg="#49e3e3")
sub1.place(relx=0.05, rely=0.25)
Duração_ciclo_menstrual = StringVar()
Duração_ciclo_menstrual_entrada = Entry(textvariable=Duração_ciclo_menstrual, font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Duração_ciclo_menstrual_entrada.place(relx=0.25, rely=0.35, relwidth=0.53)
Duração_ciclo_menstrual_entrada.focus()

#data de início do seu último período
sub1 = Label(text="Data de início do seu último período (aaaa-mm-dd) ", font=("Arial", "14", "bold"), bg="#103030", fg="#49e3e3")
sub1.place(relx=0.05, rely=0.45)
data_início_último_período = StringVar()
data_início_último_período_entrada = Entry(textvariable=data_início_último_período, font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
data_início_último_período_entrada.place(relx=0.25, rely=0.55, relwidth=0.53)

def limpar():
data_início_último_período_entrada.delete(0,END)
Duração_ciclo_menstrual_entrada.delete(0,END)
resultado_texto.config(text="")


def app():
ciclo_menstrual = int(Duração_ciclo_menstrual.get())
data_início_último = data_início_último_período.get()
ano, mês, dia = map(int, data_início_último.split("-"))
data_do_último_período = datetime.date(ano, mês, dia)
data_do_próximo_período = data_do_último_período + datetime.timedelta(days=ciclo_menstrual)
hoje = datetime.date.today()

while data_do_próximo_período <= hoje:
data_do_último_período = data_do_próximo_período
data_do_próximo_período = data_do_último_período + datetime.timedelta(days=ciclo_menstrual)

if data_do_próximo_período > hoje:
dias_até_próximo_periodo = (data_do_próximo_período - hoje).days
mensagem = f"Você não espera o próximo período por pelo menos {dias_até_próximo_periodo} dias."
else:
mensagem = f"Seu próximo período é em {data_do_próximo_período}."

resultado_texto.config(text=mensagem)


but1 = Button(text="Mostrar", 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(font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.8, relwidth=0.9, relheight=0.15)

root.mainloop()

Comentários

Mensagens populares deste blogue

Criar Cartões de Visita

12 signos egípcios

Calcular a percentagem de ocupação