annupam2003
Programmer
- Sep 27, 2012
- 1
FUNCTION Date_diff(old_date as String, new_date as String) as String
dd2=CTOD(new_date)
dd1=CTOD(old_date)
*!* dd2={02/03/2012}
*!* dd1={01/01/2012}
result=dd2-dd1
IF result < 0
MESSAGEBOX("Check the Date")
return
endif
xxYear=0
xxMonth=0
xxDay=0
j=0
k=result
z=0
IF result > 365
FOR I=0 TO RESULT
IF j = 365
xxYear=xxYear+1
j=0
IF k<365
EXIT
endif
ENDIF
j=j+1
k=k-1
NEXT
ENDIF
*SET STEP ON
l=0
j=0
l=k
IF (k < 365 OR result < 365) AND k > 30
FOR i=0 TO k
IF j=30
xxMonth=xxMonth+1
j=0
IF l < 30
exit
endif
ENDIF
j=j+1
l=l-1
next
ENDIF
IF INLIST(MONTH(dd2),1,3,5,7,8,10,12)
xxDay=l
ELSE
xxDay=l-1
ENDIF
RETURN IIF(xxYear >0,STR(xxYear)+"Y ","0Y ")+IIF(xxMonth >0 ,STR(xxMonth)+"M ","0M ")+IIF(xxDay >0,STR(XXDAY)+"D","0D ")
ENDFUNC
dd2=CTOD(new_date)
dd1=CTOD(old_date)
*!* dd2={02/03/2012}
*!* dd1={01/01/2012}
result=dd2-dd1
IF result < 0
MESSAGEBOX("Check the Date")
return
endif
xxYear=0
xxMonth=0
xxDay=0
j=0
k=result
z=0
IF result > 365
FOR I=0 TO RESULT
IF j = 365
xxYear=xxYear+1
j=0
IF k<365
EXIT
endif
ENDIF
j=j+1
k=k-1
NEXT
ENDIF
*SET STEP ON
l=0
j=0
l=k
IF (k < 365 OR result < 365) AND k > 30
FOR i=0 TO k
IF j=30
xxMonth=xxMonth+1
j=0
IF l < 30
exit
endif
ENDIF
j=j+1
l=l-1
next
ENDIF
IF INLIST(MONTH(dd2),1,3,5,7,8,10,12)
xxDay=l
ELSE
xxDay=l-1
ENDIF
RETURN IIF(xxYear >0,STR(xxYear)+"Y ","0Y ")+IIF(xxMonth >0 ,STR(xxMonth)+"M ","0M ")+IIF(xxDay >0,STR(XXDAY)+"D","0D ")
ENDFUNC