-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtask.py
More file actions
81 lines (60 loc) · 2.6 KB
/
Copy pathtask.py
File metadata and controls
81 lines (60 loc) · 2.6 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
81
import datetime
import pytz
import schedule
import time
class Task:
def __init__(self, task_id, description, due_date, appointment_date=None, is_complete=False):
self.task_id = task_id
self.description = description
self.due_date = due_date
self.appointment_date = appointment_date
self.is_complete = is_complete
def complete_task(self):
self.is_complete = True
class TaskManager:
def __init__(self):
self.tasks = []
def add_task(self, task):
self.tasks.append(task)
def complete_task(self, task_id):
for task in self.tasks:
if task.task_id == task_id:
task.complete_task()
break
def get_pending_tasks(self):
return [task for task in self.tasks if not task.is_complete]
def get_overdue_tasks(self):
now = datetime.datetime.now(pytz.utc)
return [task for task in self.tasks if not task.is_complete and task.due_date < now]
def schedule_appointment(self, task_id, appointment_date):
for task in self.tasks:
if task.task_id == task_id:
task.appointment_date = appointment_date
break
def add_task(task_manager, description, due_date, appointment_date=None):
task_id = len(task_manager.tasks) + 1
task = Task(task_id, description, due_date, appointment_date)
task_manager.add_task(task)
def complete_task(task_manager, task_id):
task_manager.complete_task(task_id)
def schedule_appointment(task_manager, task_id, appointment_date):
task_manager.schedule_appointment(task_id, appointment_date)
def display_tasks(task_manager):
pending_tasks = task_manager.get_pending_tasks()
overdue_tasks = task_manager.get_overdue_tasks()
print("Pending tasks:")
for task in pending_tasks:
print(f"Task ID: {task.task_id}, Description: {task.description}, Due Date: {task.due_date}")
print("\nOverdue tasks:")
for task in overdue_tasks:
print(f"Task ID: {task.task_id}, Description: {task.description}, Due Date: {task.due_date}")
# Create a TaskManager instance
task_manager = TaskManager()
# Add tasks
due_date = datetime.datetime.now(pytz.utc) + datetime.timedelta(days=3)
add_task(task_manager, "Task 1", due_date)
due_date = datetime.datetime.now(pytz.utc) + datetime.timedelta(days=1)
add_task(task_manager, "Task 2", due_date)
# Schedule an appointment
appointment_date = datetime.datetime.now(pytz.utc) + datetime.timedelta(days=2)
schedule_appointment(task_manager, 2, appointment_date)