>>dRenewDate = GOMONTH(dExpireDate,12)
>
>As I replied to Fred, it returns Feb 28 and not March 1. Since there isn't a 29 next year, isn't suppose to return March 1?
No, it should return the last day of the month of February, otherwise, you could either claim 1 year = 365 days, or build logic on the level of:
LPARAMETER dDate
DaysInYear = 365
If intervening valid Feb 29
DaysInYear = 366
ENDIF
RETURN dDate + DaysInYear