Repository navigation
Expand file tree
/
Copy pathmain.py
More file actions
80 lines (62 loc) · 2.68 KB
/
Copy pathmain.py
File metadata and controls
80 lines (62 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
from datetime import datetime
class Evento:
def __init__(self, nome, inicio, fim):
self.nome = nome
self.inicio = inicio
self.fim = fim
class Agenda:
def __init__(self):
self.eventos: list[Evento] = []
def adicionar_evento(self, evento: Evento):
if evento.fim <= evento.inicio:
raise ValueError("A data de término deve ser posterior à data de início.")
for ev in self.eventos:
if ev.nome == evento.nome:
raise ValueError("Um evento com mesmo nome já existe na agenda.")
if evento.inicio < ev.fim and evento.fim > ev.inicio:
return False
self.eventos.append(evento)
return True
def remover_evento(self, nome):
for evento in self.eventos:
if evento.nome == nome:
self.eventos.remove(evento)
return True
return False
def mostrar_agenda(self):
if not self.eventos:
return "Nenhum evento agendado."
return "\n".join([f"{evento.nome}: {evento.inicio} a {evento.fim}\n" for evento in self.eventos])
def sair(self):
return "Saindo da aplicação."
def main():
agenda = Agenda()
while True:
acao = input("Digite a ação (adicionar, remover, mostrar, sair): ").strip().lower()
if acao == "adicionar":
nome = input("Digite o nome do evento: ")
try:
inicio = datetime.strptime(input("Digite a hora de início (YYYY-MM-DD HH:MM): "), "%Y-%m-%d %H:%M")
fim = datetime.strptime(input("Digite a hora de término (YYYY-MM-DD HH:MM): "), "%Y-%m-%d %H:%M")
evento = Evento(nome, inicio, fim)
if agenda.adicionar_evento(evento):
print("Evento adicionado com sucesso.")
else:
print("Conflito de agendamento detectado.")
except ValueError as e:
print(f"Erro: {e}")
elif acao == "remover":
nome = input("Digite o nome do evento para remover: ")
if agenda.remover_evento(nome):
print("Evento removido com sucesso.")
else:
print("Evento não encontrado.")
elif acao == "mostrar":
print(agenda.mostrar_agenda())
elif acao == "sair":
print(agenda.sair())
break
else:
print("Ação inválida. Tente novamente.")
if __name__ == "__main__":
main()