<blockquote>
<p><strong>ANSWER</strong></p>
</blockquote>
<pre><code>def compareDate (dataType, actualResult, rIndex, rLen):
hyphenCount , result , count = 0 , 0 , 0
dateString = ""
while (rIndex < rLen):
ch = actualResult[rIndex]
if (ch == '.'):
break
if(ch >= '0' and ch <= '9'):
hyphenCount = 0
count += 1
if(count > 2):
result = -1
print " d = "
break;
dateString += str(ch)
if(ch == '-'):
count = 0
hyphenCount += 1
if(hyphenCount > 1):
print " h = "
result = -1
break
#print ("Char %c" % ch)
rIndex += 1
print "dateString is = %s" % dateString
if result != -1:
msg = ""
mt = dateString[0] + dateString[1]
dt = dateString[2] + dateString[3]
yr = dateString[4] + dateString[5]
leap = '20'+yr
print mt, dt, yr
mt = int(mt)
dt = int(dt)
yr = int (yr)
leap = int(yr)
#create and call function which verify date
result,msg = verifyDate(mt,dt,yr,leap)
print msg
return (result, rIndex)
def verifyDate(mt,dt,yr,leap):
res = 0
msg = ""
leapyr = checkForLeapYear(leap)
if(yr >= 00 and yr <= 99):
if(leapyr): # for leap year
if(mt == 2):
if(dt >= 01 and dt <= 29):
res = 0
else:
msg = "should not exceed 29"
elif(mt == 1 or mt == 3 or mt == 5 or mt == 7 or mt == 8 or mt == 10 or mt == 12):
if(dt >= 01 and dt <= 31):
res = 0
else:
msg = "should not exceed 31"
res = -1
elif(mt == 4 or mt == 6 or mt == 9 or mt == 11):
if(dt >= 01 and dt <= 30):
res = 0
else:
msg = "should not exceed 30"
res = -1
else:
msg = "month should in btwn 01 to 12"
res = -1
# for leap year ...Ends Here
else:
if((mt >= 1) and (mt <= 12)):
if(mt == 2):
if(dt >= 01 and dt <= 28):
res = 0
else:
msg = "should not exceed 28"
res = -1
elif(mt == 1 or mt == 3 or mt == 5 or mt == 7 or mt == 8 or mt == 10 or mt == 12):
if(dt >= 01 and dt <= 31):
res = 0
else:
msg = "should not exceed 31"
res = -1
elif(mt == 4 or mt == 6 or mt == 9 or mt == 11):
if(dt >= 01 and dt <= 30):
res = 0
else:
msg = "should not exceed 30"
res = -1
else:
msg = "month should in btwn 01 to 12"
res = -1
else:
msg = "year should in btwn 00 to 99"
res = -1
return (res,msg)
def checkForLeapYear(yr):
if((yr %100) == 0 and (yr % 400 == 0 )):
return True
elif(yr%4 == 0):
return True
else:
return False
</code></pre>
<blockquote>
<p>What else i can do with code to improve complexity and reduce lines of code.
Please answer with examples..</p>
</blockquote>