import datetime
from tkinter import *
root = Tk()
root.geometry("400x500")
root.resizable(0, 0)
root.config(bg="#3e4b63")
root.title("Dia de Semana")
titulo = Label(text="Dia de Semana",
font=("Arial", "35", "bold"),bg="#3e4b63",fg="#e1e4e8")
titulo.place(relx=0.08, rely=0.05)
texto_sub1 = Label(text="Ano:",
font=("Arial", "15", "bold"),bg="#3e4b63",fg="#e1e4e8")
texto_sub1.place(relx=0.2, rely=0.2)
texto_sub2 = Label(text="Mês:",
font=("Arial", "15", "bold"),bg="#3e4b63",fg="#e1e4e8")
texto_sub2.place(relx=0.2, rely=0.3)
texto_sub3= Label(text="Dia:",
font=("Arial", "15", "bold"),bg="#3e4b63",fg="#e1e4e8")
texto_sub3.place(relx=0.2, rely=0.4)
ano = IntVar()
ano_entrada = Entry(textvariable=ano,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
ano_entrada.place(relx=0.45, rely=0.2, relwidth=0.25)
Mês = IntVar()
Mês_entrada = Entry(textvariable=Mês,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
Mês_entrada.place(relx=0.45, rely=0.3, relwidth=0.25)
dia = IntVar()
dia_entrada = Entry(textvariable=dia,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
dia_entrada.place(relx=0.45, rely=0.4, relwidth=0.25)
def limpar():
dia_entrada.delete(0, END)
Mês_entrada.delete(0, END)
ano_entrada.delete(0, END)
resultado.set("")
def app():
a = ano.get()
m = Mês.get()
d = dia.get()
# Verifique se o mês e o dia estão dentro dos limites permitidos
if 1 <= m <= 12:
if m in [4, 6, 9, 11]:
if 1 <= d <= 30:
try:
data = datetime.date(a, m, d)
dia_da_semana_numero = data.weekday()
dias_da_semana = ["Segunda-feira", "Terça-feira", "Quarta-feira",
"Quinta-feira", "Sexta-feira", "Sábado", "Domingo"]
dia_da_semana = dias_da_semana[dia_da_semana_numero]
if dia_da_semana == "Sábado" or dia_da_semana == "Domingo":
b = f"um {dia_da_semana}"
else:
b = f"uma {dia_da_semana}"
mensagem = f"A data {d}/{m}/{a} cai em {b}."
except ValueError:
mensagem = "Data inválida."
else:
mensagem = 'Dia inválido.\n Para este mês,\n o dia deve estar entre 1 e 30.'
elif m == 2:
if (a % 4 == 0 and a % 100 != 0) or (a % 400 == 0): # Verificar se é um ano bissexto
if 1 <= d <= 29:
try:
data = datetime.date(a, m, d)
dia_da_semana_numero = data.weekday()
dias_da_semana = ["Segunda-feira", "Terça-feira", "Quarta-feira",
"Quinta-feira", "Sexta-feira",
"Sábado", "Domingo"]
dia_da_semana = dias_da_semana[dia_da_semana_numero]
if dia_da_semana == "Sábado" or dia_da_semana == "Domingo":
b = f"um {dia_da_semana}"
else:
b = f"uma {dia_da_semana}"
mensagem = f"A data {d}/{m}/{a} cai em {b}."
except ValueError:
mensagem = "Data inválida."
else:
mensagem = 'Dia inválido.\n Para fevereiro em um ano bissexto' \
',\n o dia deve estar entre 1 e 29.'
else:
if 1 <= d <= 28:
try:
data = datetime.date(a, m, d)
dia_da_semana_numero = data.weekday()
dias_da_semana = ["Segunda-feira", "Terça-feira",
"Quarta-feira", "Quinta-feira",
"Sexta-feira", "Sábado", "Domingo"]
dia_da_semana = dias_da_semana[dia_da_semana_numero]
if dia_da_semana == "Sábado" or dia_da_semana == "Domingo":
b = f"um {dia_da_semana}"
else:
b = f"uma {dia_da_semana}"
mensagem = f"A data {d}/{m}/{a} cai em {b}."
except ValueError:
mensagem = "Data inválida."
else:
mensagem = 'Dia inválido.\n ' \
'Para fevereiro em um ano não bissexto,\n o dia deve estar entre 1 e 28.'
else:
if 1 <= d <= 31:
try:
data = datetime.date(a, m, d)
dia_da_semana_numero = data.weekday()
dias_da_semana = ["Segunda-feira", "Terça-feira",
"Quarta-feira", "Quinta-feira",
"Sexta-feira", "Sábado", "Domingo"]
dia_da_semana = dias_da_semana[dia_da_semana_numero]
if dia_da_semana == "Sábado" or dia_da_semana == "Domingo":
b = f"um {dia_da_semana}"
else:
b = f"uma {dia_da_semana}"
mensagem = f"A data {d}/{m}/{a} cai em {b}."
except ValueError:
mensagem = "Data inválida."
else:
mensagem = 'Dia inválido.\n Para este mês, o dia deve estar entre 1 e 31.'
else:
mensagem = 'Mês inválido.\n O mês deve estar entre 1 e 12.'
resultado.set(mensagem)
resultado.set(mensagem)
but1 = Button(text="Verificar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=app)
but1.place(relx=0.05, rely=0.5, relwidth=0.27, 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.35, rely=0.5, 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.65, rely=0.5, relwidth=0.25, relheight=0.1)
resultado = StringVar()
resultado_texto = Label(textvariable=resultado,
font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.05, rely=0.7, relwidth=0.9,relheight=0.25)
root.mainloop()