Larry, Works like a charm. Thank you very much for sharing.
Claudine :) -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Claudine Robbins Sent: Thursday, September 16, 2004 8:33 AM To: RBG7-L Mailing List Subject: [RBG7-L] - Re: Calculation Problem Thanks Larry. I can't wait to try this. Will let you know how it works out. -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Lawrence Lustig Sent: Wednesday, September 15, 2004 8:15 PM To: RBG7-L Mailing List Subject: [RBG7-L] - Re: Calculation Problem > -- v_yr_emp should be 7 and vmod 5 not 6! Here are two stored procedures I wrote to calculate Age (complete years between two dates) and number of complete months between two dates. Real years and months are calculated, not using the approximation of 30 and 365 days. Watch out for wrapping. . . -- MonthDiff.PRC: Returns number of complete months from pMD_Date1 to pMD_Date2 -- PUT MthDiff.PRC AS MonthDiff pMD_Date1 DATE pMD_Date2 DATE RETURN INTEGER IF IDAY(.pMD_Date2) <= IDAY(.pMD_Date1) THEN RETURN (((IYR4(.pMD_Date2)-IYR4(.pMD_Date1))*12) + (IMON(.pMD_Date2)-IMON(.pMD_Date1)-1)) ELSE RETURN (((IYR4(.pMD_Date2)-IYR4(.pMD_Date1))*12) + (IMON(.pMD_Date2)-IMON(.pMD_Date1))) ENDIF -- CalcAge.PRC: Calculates age as of a given date. -- PUT CalcAge.PRC AS CalcAge pAsOfDate DATE, pBirthDate DATE RETURN INT IF ((IMON(.pBirthDate)*100)+IDAY(.pBirthDate)) >= ((IMON(.pAsOfDate)*100)+IDAY(.pAsOfDate)) THEN RETURN (IYR4(.pAsOfDate) - IYR4(.pBirthDate) - 1) ELSE RETURN (IYR4(.pAsOfDate) - IYR4(.pBirthDate)) ENDIF -- Larry
