【发布时间】:2020-11-26 09:48:47
【问题描述】:
我正在尝试使用 tkcalendar 进行 if 语句,但不知道为什么它不起作用。
from tkinter import *
from tkcalendar import *
import datetime
root = Tk()
root.title('Hi')
root.geometry('500x400')
cal = Calendar(root, date_pattern="d/m/y", year = 2020, month = 11, day = 1)
cal.pack(pady=20)
def grab_date():
my_label.config(text = cal.get_date())
d = cal.get_date()
print(d)
if datetime.datetime.strptime('01/11/2020', "%d/%m/%Y").strftime("%d/%m/%Y")
<=d<=datetime.datetime.strptime('01/1/2021', "%d/%m/%Y").strftime("%d/%m/%Y"):
print('ok')
my_button = Button(root, text = 'Get date', command = grab_date)
my_button.pack()
my_label = Label(root, text = ' ')
my_label.pack(pady = 20)
root.mainloop()
当我在日期之间按下按钮时,它不会打印“ok”。有谁知道我如何解决这个问题以及使用 tkcalendar 时如何完成 if 语句?然后我想添加更多条件,说明何时按下其他日期打印其他内容。
【问题讨论】:
-
你想在 if 语句中检查什么?
-
@HarshaBiyani 看看如果我按下“2020 年 1 月 11 日”和“2021 年 1 月 1 日”之间的按钮,我希望程序打印:好的
-
cal.get_date()是返回一个 datetime 对象还是需要先转换它? -
@scotty3785 它返回一个日期时间对象,格式为:日/月/年
-
好声@HarshaBiyani,Carl-Erik Pettersson 应该比较日期时间对象而不是字符串,因此将字符串转换为日期时间然后再转换回字符串是没有意义的。
标签: python python-3.x if-statement tkinter tkcalendar