Feriados Nacionais em Portugal

from datetime import datetime, timedelta

root = Tk()
root.geometry("700x600")
root.resizable(0, 0)
root.config(bg="#103030")
feriados_nacionais = {
"Ano Novo": "2025-01-01",
"Sexta-feira Santa": "2025-04-18",
"Dia da Liberdade": "2025-04-25",
"Dia do Trabalhador": "2025-05-01",
"Corpo de Deus": "2025-06-19",
"Dia de Portugal": "2025-06-10",
"Assunção de Nossa Senhora": "2025-08-15",
"Implantação da República": "2025-10-05",
"Dia de Todos os Santos": "2025-11-01",
"Restauração da Independência": "2025-12-01",
"Imaculada Conceição": "2025-12-08",
"Natal": "2025-12-25",
}

dias_semana_portugues = {
"Monday": "Segunda-feira",
"Tuesday": "Terça-feira",
"Wednesday": "Quarta-feira",
"Thursday": "Quinta-feira",
"Friday": "Sexta-feira",
"Saturday": "Sábado",
"Sunday": "Domingo",
}

def verifica_ponte(data):
dia_semana = data.weekday()
# 0=Segunda, 1=Terça, ..., 3=Quinta
return dia_semana in [1, 3]

def lista_feriados_com_ponte(feriados):
lista_resultados = []
for feriado, data_str in feriados.items():
data = datetime.strptime(data_str, "%Y-%m-%d")
dia_semana_ingles = data.strftime("%A") # Nome do dia da semana em inglês
dia_semana = dias_semana_portugues[dia_semana_ingles] # Traduzir para português
ponte = " (Possível Ponte)" if verifica_ponte(data) else ""
mensagem = f"{feriado}: {data_str} ({dia_semana}){ponte}"
lista_resultados.append(mensagem)
return lista_resultados

def mostrar_feriados():
resultados = lista_feriados_com_ponte(feriados_nacionais)
for idx, mensagem in enumerate(resultados):
Label(root, text=mensagem, font=("Arial", 12), bg="#103030", fg="#ffffff", anchor="w").place(x=20, y=150 + (idx * 30))

root.title("Feriados Nacionais em Portugal")
titulo = Label(text="Feriados Nacionais em Portugal",
font=("Arial", "28", "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.1, rely=0.05)

botao_mostrar = Button(root, text="Mostrar Feriados", command=mostrar_feriados, font=("Arial", 14), bg="#49e3e3", fg="#103030")
botao_mostrar.place(relx=0.35, rely=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