Larry

Very cool - thanks for sharing this with all of us!

David Blocker
[EMAIL PROTECTED]
781-784-1919
Fax: 781-784-1860
Cell: 339-206-0261
----- Original Message -----
From: "Lawrence Lustig" <[EMAIL PROTECTED]>
To: "RBG7-L Mailing List" <[EMAIL PROTECTED]>
Sent: Wednesday, September 15, 2004 9:14 PM
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
>
>

Reply via email to