12 signos egípcios

from datetime import datetime
from tkinter import *

root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("12 signos egípcios")

titulo = Label(text="12 signos egípcios",
font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.25, rely=0.05)

texto_sub1 = Label(text="Data de Nascimento (dd-mm-YYYY) :",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.32)

Data = StringVar()
Data_entrada = Entry(textvariable=Data,
font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center')
Data_entrada.place(relx=0.65, rely=0.33, relwidth=0.31)

resultado_texto = Label(text="", font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.65, relwidth=0.9, relheight=0.3)

signos = [
{"nome": "Nilo", "datas": [("01-01", "07-01"), ("19-06", "28-06"), ("01-09", "07-09"), ("18-11", "26-11")],
"descricao": "Representa novos começos, intuição e adaptação. Pessoas calmas e observadoras."},
{"nome": "Amon-Rá", "datas": [("08-01", "21-01"), ("01-02", "11-02")],
"descricao": "Liderança, coragem e sabedoria. Pessoas com forte senso de propósito."},
{"nome": "Mut", "datas": [("22-01", "31-01"), ("08-09", "22-09")],
"descricao": "Protetores, maternais e responsáveis. Ligadas à energia feminina divina."},
{"nome": "Geb", "datas": [("12-02", "29-02"), ("20-08", "31-08")],
"descricao": "Sensíveis, leais e ligados à natureza. Buscam harmonia e justiça."},
{"nome": "Osíris", "datas": [("01-03", "10-03"), ("27-11", "18-12")],
"descricao": "Carismáticos, idealistas e espirituais. Guiados pela transformação."},
{"nome": "Isis", "datas": [("11-03", "31-03"), ("18-10", "29-10"), ("19-12", "31-12")],
"descricao": "Compassivas, intuitivas e dedicadas. Ligadas ao amor e à cura."},
{"nome": "Thoth", "datas": [("01-04", "19-04"), ("08-11", "17-11")],
"descricao": "Inteligentes, criativos e comunicativos. Ligados à escrita e sabedoria."},
{"nome": "Hórus", "datas": [("20-04", "07-05"), ("12-08", "19-08")],
"descricao": "Protetores, visionários e determinados. Buscam justiça e equilíbrio."},
{"nome": "Anúbis", "datas": [("08-05", "27-05"), ("29-06", "13-07")],
"descricao": "Misteriosos, espirituais e introspectivos. Ligados ao oculto e ao renascimento."},
{"nome": "Seth", "datas": [("28-05", "18-06"), ("28-09", "02-10")],
"descricao": "Energéticos, impulsivos e aventureiros. Representam o caos criativo."},
{"nome": "Bastet", "datas": [("14-07", "28-07"), ("23-09", "27-09"), ("03-10", "17-10")],
"descricao": "Encantadoras, sensuais e protetoras. Ligadas à alegria e ao prazer."},
{"nome": "Sekhmet", "datas": [("29-07", "11-08"), ("30-10", "07-11")],
"descricao": "Fortes, corajosas e justas. Representam o poder e a cura."}
]

def limpar():
Data_entrada.delete(0, END)
resultado_texto.config(text="")

def app():
try:
data_nasc = datetime.strptime(Data.get(), "%d-%m-%Y").date()
dia_mes = (data_nasc.day, data_nasc.month)

for signo in signos:
for inicio, fim in signo["datas"]:
ini_dia, ini_mes = map(int, inicio.split('-'))
fim_dia, fim_mes = map(int, fim.split('-'))
inicio_tuple = (ini_dia, ini_mes)
fim_tuple = (fim_dia, fim_mes)

if inicio_tuple <= dia_mes <= fim_tuple or (inicio_tuple > fim_tuple and (dia_mes >= inicio_tuple or dia_mes <= fim_tuple)):
resultado_texto.config(text=f"Seu signo egípcio é {signo['nome']}:\n{signo['descricao']}")
return

resultado_texto.config(text="Data fora dos intervalos conhecidos.")
except ValueError:
resultado_texto.config(text="Formato inválido! Use dd-mm-YYYY.")

but1 = Button(text="Mostrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.1, rely=0.45, 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.45, 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.45, relwidth=0.25, relheight=0.1)

root.mainloop()

Comentários

Mensagens populares deste blogue

Criar Cartões de Visita

Calcular a percentagem de ocupação