Моя цель - создать обратный отсчет, в котором будут отображаться минуты и секунды, оставшиеся до указанного c времени суток, а затем, когда это будет достигнуто, обратный отсчет до следующего.
Что у меня есть до сих пор будет обратный отсчет до заданной c даты и времени с использованием datetime.datetime, а затем остановка.
В настоящее время у меня есть две проблемы: как считать, используя время, а не datetime, так что он будет одинаковым каждый день (т.е. обратный отсчет до полудня каждый день, а не обратный отсчет до полудня на указанную c дату). Моя вторая проблема заключается в том, как перейти к следующему разу для подсчета (я полагаю, что это просто перенос нового времени, когда seconds_left = 0, но я не уверен).
Вот где я на данный момент:
#!/usr/bin/python
from tkinter import *
from tkinter import ttk
from tkinter import font
import time
import datetime
global endTime
def quit(*args):
root.destroy()
def show_time():
# Get the time remaining until the event
remainder = endTime - datetime.datetime.now()
# remove the microseconds part
remainder = remainder - datetime.timedelta(microseconds=remainder.microseconds)
# Show the time left
txt.set(remainder)
# Trigger the countdown after 1000ms
root.after(1000, show_time)
# Use tkinter lib for showing the clock
root = Tk()
root.attributes("-fullscreen", True)
root.configure(background='black')
root.bind("x", quit)
root.after(1000, show_time)
# Set the end date and time for the countdown
endTime = datetime.datetime(2017, 9, 19, 9, 0, 0)
fnt = font.Font(family='Helvetica', size=60, weight='bold')
txt = StringVar()
lbl = ttk.Label(root, textvariable=txt, font=fnt, foreground="green", background="black")
lbl.place(relx=0.5, rely=0.5, anchor=CENTER)
root.mainloop()