Mundo em Python

Agenda de Compromissos

import tkinter as tk
from tkinter import messagebox
import json
import datetime
def adicionar_compromissos():
global descricao_entry, data_entry, hora_entry, banco_de_dados
descricao = descricao_entry.get()
data_str = data_entry.get()
hora_str = hora_entry.get()
try:
data_compromisso = datetime.datetime.strptime(data_str + " " + hora_str, "%d/%m/%Y %H:%M")
chave_compromisso = data_compromisso.strftime("%d/%m/%Y %H:%M")
banco_de_dados[chave_compromisso] = descricao
messagebox.showinfo("Sucesso", f"O compromisso foi adicionado ao banco de dados.")
except ValueError:
messagebox.showerror("Erro", "Formato de data ou hora inválido. Use o formato DD/MM/AAAA para data e HH:MM para hora.")
limpar_campos()
def verificar_compromissos_hoje():
global banco_de_dados
hoje = datetime.date.today()
compromissos_hoje = [compromisso for compromisso in banco_de_dados if
datetime.datetime.strptime(compromisso, "%d/%m/%Y %H:%M").date() == hoje] if compromissos_hoje:
mensagem = "Compromissos de hoje:\n"
for compromisso in compromissos_hoje:
mensagem += f"{compromisso}: {banco_de_dados[compromisso]}\n"
else:
mensagem = "Não há compromissos hoje."
messagebox.showinfo("Compromissos de Hoje", mensagem)
def limpar_campos():
descricao_entry.delete(0, tk.END)
data_entry.delete(0, tk.END)
hora_entry.delete(0, tk.END)
def main():
global descricao_entry, data_entry, banco_de_dados, hora_entry
try:
with open("banco_de_agenda.json", "r") as arquivo:
banco_de_dados = json.load(arquivo)
except FileNotFoundError:
banco_de_dados = {} root = tk.Tk()
root.title("Agenda de Compromissos") descricao_label = tk.Label(root, text="Descrição:")
descricao_label.grid(row=0, column=0, padx=10, pady=5)
descricao_entry = tk.Entry(root)
descricao_entry.grid(row=0, column=1, padx=10, pady=5) hora_label = tk.Label(root, text="Hora (HH:MM):")
hora_label.grid(row=1, column=0, padx=10, pady=5)
hora_entry = tk.Entry(root)
hora_entry.grid(row=1, column=1, padx=10, pady=5) data_label = tk.Label(root, text="Data do Compromisso (DD/MM/AAAA):")
data_label.grid(row=2, column=0, padx=10, pady=5)
data_entry = tk.Entry(root)
data_entry.grid(row=2, column=1, padx=10, pady=5) adicionar_button = tk.Button(root, text="Adicionar Compromisso", command=adicionar_compromissos)
adicionar_button.grid(row=3, column=0, columnspan=2, padx=10, pady=5, sticky="WE") verificar_button = tk.Button(root, text="Verificar Compromissos de Hoje", command=verificar_compromissos_hoje)
verificar_button.grid(row=4, column=0, columnspan=2, padx=10, pady=5, sticky="WE") root.mainloop() with open("banco_de_agenda.json", "w") as arquivo:
json.dump(banco_de_dados, arquivo, indent=4)
if __name__ == "__main__":
main()
0