0

How to check that an operator correctly enters a date?

I'm blocking on how to give a true value if a correct date Thank you in advance for your help

from tkinter import *
from tkinter.messagebox import * # boîte de dialogue

def Verification():
    if date_saisie.get() == 'python27':

        showinfo('Résultat','good date  by !')
        Mafenetre.destroy()
    else:
        showwarning('incorrect date. Please start over !')
        date_saisie.set('')

Mafenetre = Tk()
Mafenetre.title('Frame widget')
Mafenetre['bg']='bisque' # couleur de fond


Frame2 = Frame(Mafenetre,borderwidth=2,relief=GROOVE)
Frame2.pack(side=LEFT,padx=10,pady=10)

Label(Frame2,text="saisir une date \nEX:01/01/2020").pack(padx=10,pady=5)
date_saisie= StringVar()
date_saisie.set("01/01/2020")
Champ = Entry(Frame2, textvariable= date_saisie, bg ='bisque', fg='maroon')
Champ.focus_set()
Champ.pack(side = LEFT, padx = 10, pady = 5)
Bouton = Button(Mafenetre, text ='Valider', command = Verification)
Bouton.pack(side = LEFT, padx = 10, pady = 10)

Mafenetre.mainloop()
  • 1
    Maybe call [`datetime.strptime()`](https://docs.python.org/3/library/datetime.html#datetime.datetime.strptime) on it? – Fred Larson Feb 03 '21 at 21:55
  • 1
    maybe use a regex. https://stackoverflow.com/questions/4709652/python-regex-to-match-dates or here https://stackoverflow.com/questions/51572140/check-date-format-from-a-python-tkinter-entry-widget?answertab=votes#tab-top –  Feb 03 '21 at 22:01
  • There's a popular third-party add-on named [`dateutils`](https://pypi.org/project/dateutils/) that might help. – martineau Feb 03 '21 at 22:36

1 Answers1

1

seriously, a simple google search can answer this you need to import datetime from datetime import datetime assume user_input is the one you got from tkinter

try:
    datetime.strptime(user_input, '%m/%d/%Y')
    print('The date {} is valid.'.format(user_input))
except ValueError:
    print('The date {} is invalid'.format(user_input))