File size: 3,967 Bytes
e11016d
 
 
 
 
 
 
 
 
22be156
e11016d
 
 
 
 
 
 
 
22be156
e11016d
 
 
 
 
22be156
e11016d
 
 
 
 
 
 
 
22be156
1c86b91
 
c19b6b0
22be156
 
 
 
 
 
 
 
 
c19b6b0
22be156
1c86b91
4f45292
22be156
 
 
8b369c9
22be156
8b369c9
22be156
 
1c86b91
e11016d
 
 
 
 
 
 
 
 
22be156
e11016d
 
 
 
 
 
22be156
 
e11016d
 
22be156
e11016d
 
 
1c86b91
 
 
 
 
e11016d
 
 
 
22be156
e11016d
 
1c86b91
22be156
a0886e0
1c86b91
e11016d
 
1c86b91
e11016d
 
1c86b91
818cf73
e11016d
 
 
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
import json
import datetime

class Calendar:
    def __init__(self, filename="calendar_data.json"):
        self.filename = filename
        self.reminders = self.load_calendar()
        self.current_date = datetime.date.today()

    
    def load_calendar(self):
        """Load reminders from a file."""
        try:
            with open(self.filename, "r") as file:
                return json.load(file)
        except (FileNotFoundError, json.JSONDecodeError):
            return {}

    
    def save_calendar(self):
        """Save reminders to a file."""
        with open(self.filename, "w") as file:
            json.dump(self.reminders, file, indent=4)

    
    def add_reminder(self, date, reminder):
        """Add a reminder for a specific date."""
        if date not in self.reminders:
            self.reminders[date] = []
        self.reminders[date].append(reminder)
        self.save_calendar()
        print(f"Reminder added for {date}: {reminder}")

    
    def show_all_reminders(self):
        """Show all past and future reminders in our calendar app"""
        if (self.reminders is None) or len(self.reminders)<1:
            print("No reminders in calendar app. Please create an event reminder to start using the app.")
        else:
            print("#  Date    Event Description")
            for i,(dt,event_description) in enumerate(self.reminders.items()):
                print(f"{i+1}. {dt} {event_description}")

    
    def show_future_reminders(self):
        """Show all future reminders in our calendar app"""
        if (self.reminders is None) or len(self.reminders)<1:
            print("No future reminders in calendar app. Please create a future event reminder.")
        else:
            current_datetime = datetime.datetime.now()
            
            print("#  Date    Event Description")
            for i,(dt,event_description) in enumerate(self.reminders.items()):
                dt = datetime.datetime.strptime(dt, '%Y-%m-%d')
                
                if current_datetime.date() <= dt.date():
                    print(f"{i+1}. {dt} {event_description}")

    
    def show_reminders(self, date):
        """Show reminders for a specific date."""
        if date in self.reminders:
            print(f"Reminders for {date}:")
            for i, reminder in enumerate(self.reminders[date], 1):
                print(f"{i}. {reminder}")
        else:
            print(f"No reminders for {date}.")

    
    def browse_calendar(self, days):
        """Move forward or backward in the calendar by a given number of days."""
        self.current_date += datetime.timedelta(days=days)
        print(f"Current date: {self.current_date}")
        self.show_reminders(str(self.current_date))



if __name__ == "__main__":
    calendar = Calendar()
    
    while True:
        print("\nCalendar Menu:")
        print("1. Add Reminder")
        print("2. Show All Past and Future Reminders")
        print("3. Show All Future Reminders")
        print("4. Show Reminders for Specific Day")
        print("5. Browse Calendar")
        print("6. Exit")
        choice = input("Choose an option: ")
        
        if choice == "1":
            date = input("Enter date (YYYY-MM-DD): ")
            reminder = input("Enter description for event reminder: ")
            calendar.add_reminder(date, reminder)
        elif choice == "2":
            calendar.show_all_reminders()
        elif choice == "3":
            calendar.show_future_reminders()
        elif choice == "4":
            date = input("Enter date (YYYY-MM-DD): ")
            calendar.show_reminders(date)
        elif choice == "5":
            days = int(input("Enter number of days to move (positive for forward, negative for backward): "))
            calendar.browse_calendar(days)
        elif choice == "6":
            calendar.save_calendar()
            break
        else:
            print("Invalid option. Please try again.")