Mundo em Python

Feriados Judaicos

from tkinter import *
from convertdate import hebrew root = Tk()
root.geometry("700x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Feriados Judaicos") titulo = Label(root, text="Feriados Judaicos", font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.5, rely=0.05, anchor="n") sub1_text = Label(root, text="Ano", font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
sub1_text.place(relx=0.35, rely=0.3) Ano = StringVar()
Ano_entrada = Entry(textvariable=Ano,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Ano_entrada.place(relx=0.5, rely=0.33, relwidth=0.35)
Ano_entrada.focus() var = StringVar()
feriados = [
"Rosh Hashaná (Ano Novo Judaico)",
"Yom Kipur (Dia do Perdão)",
"Sucot (Festa das Cabanas)",
"Shemini Atzeret e Simchat Torá",
"Hanukkah (Festa das Luzes)",
"Purim",
"Pessach (Páscoa Judaica)",
"Shavuot (Festa das Semanas)"
]
dropdown = OptionMenu(root, var, *feriados)
var.set(feriados[0])
dropdown.place(relx=0.5, rely=0.2, anchor="n")
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 12))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 12))
# Função Limpar
def limpar():
resultado_texto.config(text="")
def app():
v = var.get()
ano_valor = Ano.get().strip()
if not ano_valor.isdigit():
resultado_texto.config(text="Por favor, insira um ano válido (ex: 2025).")
return
ano = int(ano_valor) def formatar_data(h_ano, h_mes, h_dia):
g_ano, g_mes, g_dia = hebrew.to_gregorian(h_ano, h_mes, h_dia)
return f"{g_dia:02d}/{g_mes:02d}/{g_ano}"

mensagem = ""

# Função para escolher automaticamente o ano judaico correto
def hebraico(ano_greg, mes_hebraico):
return ano_greg + 3760 if 1 <= mes_hebraico <= 6 else ano_greg + 3761

if v == "Rosh Hashaná (Ano Novo Judaico)":
h_ano = hebraico(ano, 7)
data_inicio = formatar_data(h_ano, 7, 1)
data_fim = formatar_data(h_ano, 7, 2)
mensagem = (f"Rosh Hashaná {ano}\n\n{data_inicio} até {data_fim}\n"
"Início do ano judaico; dia de reflexão e oração.\n"
"Rituais: Tocar o shofar, rezas especiais e refeições festivas.") elif v == "Yom Kipur (Dia do Perdão)":
h_ano = hebraico(ano, 7)
data = formatar_data(h_ano, 7, 10)
mensagem = (f"Yom Kipur {ano}\n\n{data}\n"
"Dia mais sagrado do judaísmo; jejum e arrependimento.") elif v == "Sucot (Festa das Cabanas)":
h_ano = hebraico(ano, 7)
data_inicio = formatar_data(h_ano, 7, 15)
data_fim = formatar_data(h_ano, 7, 21)
mensagem = (f"Sucot {ano}\n\n{data_inicio} até {data_fim}\n"
"Comemora a proteção divina no deserto.\n"
"Rituais: Morar em uma sucá e balançar as quatro espécies.") elif v == "Shemini Atzeret e Simchat Torá":
h_ano = hebraico(ano, 7)
data_inicio = formatar_data(h_ano, 7, 22)
data_fim = formatar_data(h_ano, 7, 23)
mensagem = (f"Shemini Atzeret e Simchat Torá {ano}\n\n{data_inicio} até {data_fim}\n"
"Encerramento de Sucot e celebração da Torá.") elif v == "Hanukkah (Festa das Luzes)":
h_ano = hebraico(ano, 9)
data_inicio = formatar_data(h_ano, 9, 25)
data_fim = formatar_data(h_ano, 10, 2)
mensagem = (f"Hanukkah {ano}\n\n{data_inicio} até {data_fim}\n"
"Comemora o milagre do óleo.\n"
"Rituais: Acender a menorá, comidas com óleo e jogos com dreidel.") elif v == "Purim":
h_ano = hebraico(ano, 12)
data = formatar_data(h_ano, 12, 14)
mensagem = (f"Purim {ano}\n\n{data}\n"
"Celebra a salvação dos judeus na Pérsia.\n"
"Rituais: Leitura da Meguilá, fantasias e doações aos pobres.") elif v == "Pessach (Páscoa Judaica)":
h_ano = hebraico(ano, 1)
data_inicio = formatar_data(h_ano, 1, 15)
data_fim = formatar_data(h_ano, 1, 22)
mensagem = (f"Pessach {ano}\n\n{data_inicio} até {data_fim}\n"
"Comemora a libertação dos judeus do Egito.\n"
"Rituais: Seder e leitura da Hagadá.") elif v == "Shavuot (Festa das Semanas)":
h_ano = hebraico(ano, 3)
data = formatar_data(h_ano, 3, 6)
mensagem = (f"Shavuot {ano}\n\n{data}\n"
"Celebra a entrega da Torá no Monte Sinai.\n"
"Rituais: Estudo da Torá e consumo de laticínios.") 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.85, 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.85, 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.85, relwidth=0.25, relheight=0.1) resultado_texto = Label(
text="",
font=("Arial", 13),
bg="#f0f7ff",
fg="#103030",
anchor="nw",
justify=LEFT,
wraplength=620
)
resultado_texto.place(relx=0.05, rely=0.45, relwidth=0.9, relheight=0.35) root.mainloop()
0