如何在 tkinter 中输入 if 语句日期格式?
How to put in if statement date format for entry in tkinter?
def Verification():
date_format = "%d/%m/%Y"
if (datetime.strptime("1/1/2001", date_format) <= date_ < datetime.strptime("31/1/2008", date_format)):
print('bravo')
date_= datetime.strptime(date_,date_format)
vt=date_
vt =StringVar()
vt.set('')
lb = Label(parent, text = 'birth day: ')
cp = Entry(parent, textvariable=vt)
bt = Button(parent, text ='Verify', command = Verification)
lb.place(x=30, y=90)
cp.place(x=95, y=90)
bt.place(x=220,y=90)
我不确定我是否理解您的问题,因此以下是基于我认为您所问内容的答案。
它是这样工作的:当按下 Verify 按钮时,将调用 verification()
函数,该函数最初将尝试解析用户输入到 datetime
实例。如果它不能做到这一点,将出现一条错误消息。如果成功,则接下来检查它是否在要求的日期范围内。同样,如果不是,则显示一条错误消息。
from datetime import datetime
from tkinter import *
import tkinter.messagebox as messagebox
DATE_FORMAT = "%d/%m/%Y"
MIN_DATE = datetime.strptime('1/1/2001', DATE_FORMAT)
MAX_DATE = datetime.strptime('31/1/2008', DATE_FORMAT)
def verification():
try:
date_= datetime.strptime(vt.get(), DATE_FORMAT)
except ValueError:
messagebox.showerror('Invalid Date', f'"{vt.get()}"')
return
if MIN_DATE <= date_ < MAX_DATE: # Check date range.
messagebox.showinfo('Bravo', "You entered a valid date!")
else:
messagebox.showerror('Out of range', vt.get())
parent = Tk()
parent.geometry('300x200')
vt = StringVar(value='D/M/Y') # Initially show required format.
lb = Label(parent, text='birth day: ')
cp = Entry(parent, textvariable=vt)
bt = Button(parent, text ='Verify', command=verification)
lb.place(x=30, y=90)
cp.place(x=95, y=90)
bt.place(x=220,y=90)
parent.mainloop()
截图运行:
def Verification():
date_format = "%d/%m/%Y"
if (datetime.strptime("1/1/2001", date_format) <= date_ < datetime.strptime("31/1/2008", date_format)):
print('bravo')
date_= datetime.strptime(date_,date_format)
vt=date_
vt =StringVar()
vt.set('')
lb = Label(parent, text = 'birth day: ')
cp = Entry(parent, textvariable=vt)
bt = Button(parent, text ='Verify', command = Verification)
lb.place(x=30, y=90)
cp.place(x=95, y=90)
bt.place(x=220,y=90)
我不确定我是否理解您的问题,因此以下是基于我认为您所问内容的答案。
它是这样工作的:当按下 Verify 按钮时,将调用 verification()
函数,该函数最初将尝试解析用户输入到 datetime
实例。如果它不能做到这一点,将出现一条错误消息。如果成功,则接下来检查它是否在要求的日期范围内。同样,如果不是,则显示一条错误消息。
from datetime import datetime
from tkinter import *
import tkinter.messagebox as messagebox
DATE_FORMAT = "%d/%m/%Y"
MIN_DATE = datetime.strptime('1/1/2001', DATE_FORMAT)
MAX_DATE = datetime.strptime('31/1/2008', DATE_FORMAT)
def verification():
try:
date_= datetime.strptime(vt.get(), DATE_FORMAT)
except ValueError:
messagebox.showerror('Invalid Date', f'"{vt.get()}"')
return
if MIN_DATE <= date_ < MAX_DATE: # Check date range.
messagebox.showinfo('Bravo', "You entered a valid date!")
else:
messagebox.showerror('Out of range', vt.get())
parent = Tk()
parent.geometry('300x200')
vt = StringVar(value='D/M/Y') # Initially show required format.
lb = Label(parent, text='birth day: ')
cp = Entry(parent, textvariable=vt)
bt = Button(parent, text ='Verify', command=verification)
lb.place(x=30, y=90)
cp.place(x=95, y=90)
bt.place(x=220,y=90)
parent.mainloop()
截图运行: