Is it possible to not have an error when it encounters a ValueError from a user inputting an invalid date? For example if I input "123456" in the date box the program will error. Ideally it would ask the user to try and enter the date again, much like it does if they input something the wrong length of a date just now.
import datetime
from datetime import timedelta
#start date
while True:
startDate = input('Start Date (DDMMYY): ')
if startDate == '':
startDate = datetime.date.today() - timedelta(days=1) #defaults to yesterday
break
elif len(startDate) == 6:
startDate = datetime.datetime.strptime(startDate, '%d%m%y').date() #converts input to proper date format if correct length
break
print('Date must be in format DDMMYY, please try again')
#end date
while True:
endDate = input('End Date (DDMMYY): ')
if endDate == '':
endDate = datetime.date.today() #defaults to today
break
elif len(endDate) == 6:
endDate = datetime.datetime.strptime(endDate, '%d%m%y').date()
break
print('Date must be in format DDMMYY, please try again')
print(startDate)
print(endDate)
Yes, you can use a try-except statement like this
#start date
while True:
startDate = input('Start Date (DDMMYY): ')
if startDate == '':
startDate = datetime.date.today() - timedelta(days=1) #defaults to yesterday
break
elif len(startDate) == 6:
try:
startDate = datetime.datetime.strptime(startDate, '%d%m%y').date() #converts input to proper date format if correct length
break
except:
print('Date must be in format DDMMYY, please try again')