class spdate:
def __init__(self):
self.month=0
self.day=0
self.year=0
def __init__(self,day,month,year):
self.day=day
self.month=month
self.year=year
def check_spdate(self):
if(self.day*self.month==self.year):
print “Entered Date %s/%s/%s is a Special Daten” %(self.day,self.month,self.year)
else:
print “Entered Date %s/%s/%s is not a Special Daten” %(self.day,self.month,self.year)
def validate_date(self):
check=0
if self.month<0 or self.month>=13:
print “Please enter a Valid Month”
elif self.day<0 or self.day>31:
if self.month==2:
if self.day<0 or self.day>29:
print “Please enter a Valid Day”
else:
print “Please enter a Valid Day”
else:
if self.month==2:
if self.day>29:
print “Enter a Valid Day”
elif self.day==29:
if self.year%4==0 and self.year%100!=0:
check=1
else:
print “Enter a Valid Day”
else:
check=1
else:
if self.month in (4,6,9,11):
if self.day>30:
print “Enter a Valid Day”
else:
check=1
else:
check=1
return check
def get_input(inp_str):
while True:
try:
inp = int(input(‘Enter a valid %s:’ % inp_str))
return inp
except:
print(“Please enter a Valid %s” % inp_str)
continue
month=get_input(‘month’)
day=get_input(‘day’)
year=get_input(‘year’)
date=spdate(day,month,year)
if date.validate_date()==1:
date.check_spdate()
else:
print “Wrong Date Entered quitting”
exit
Output:
Enter a valid month:2
Enter a valid day:30
Enter a valid year:20
Enter a Valid Day
Wrong Date Entered quitting
Output2:
Enter a valid month:2
Enter a valid day:10
Enter a valid year:20
Entered Date 10/2/20 is a Special Date
Output3:
Enter a valid month:11
Enter a valid day:12
Enter a valid year:17
Entered Date 12/11/17 is not a Special Date