print('import datetime
import tkinter as tk
# hard-coded table of events
events = [
{"time": datetime.time(8, 45), "label": "начала урока"},
{"time": datetime.time(9, 25), "label": "конца урока"},
{"time": datetime.time(9, 35), "label": "начала урока"},
{"time": datetime.time(10, 15), "label": "конца урока"},
{"time": datetime.time(10, 25), "label": "начала урока"},
{"time": datetime.time(11, 5), "label": "конца урока"},
{"time": datetime.time(11, 25), "label": "начала урока"},
{"time": datetime.time(12, 5), "label": "конца урока"},
{"time": datetime.time(12, 15), "label": "начала урока"},
{"time": datetime.time(12, 55), "label": "конца урока"},
{"time": datetime.time(13, 5), "label": "начала урока"},
{"time": datetime.time(13, 50), "label": "конца урока"}
]
def get_next_event():
now = datetime.datetime.now().time()
for event in events:
if event["time"] > now:
return event
# if no upcoming events found, return the first event of the next day
return events[0]
def update_label():
next_event = get_next_event()
now = datetime.datetime.now()
event_time = datetime.datetime.combine(now, next_event["time"])
delta = event_time - now
hours, remainder = divmod(delta.seconds, 3600)
minutes, seconds = divmod(remainder, 60)
event_label.config(text=f'{hours:02d}:{minutes:02d}:{seconds:02d} до {next_event["label"]}\nСледуйщее событие в {next_event["time"].strftime("%H:%M:%S")}')
root.after(1000, update_label) # schedule the function to be called again in 1 second
root = tk.Tk()
root.geometry("400x200")
root.title("Конец урока")
event_label = tk.Label(root, text="")
event_label.pack()
update_label()
root.mainloop()')
|