nTotalDays = BetweenDates (dBirthDate, Date (), @nYears @nMonths, @nDays) Function BetweenDates *-------- ------------ LParameters pStartDate, pEndDate, pYears, pMonths, pDays Local dStartDate, dEndDate, dPreCmpDate dPreCmpDate = {} dStartDate = Min (pStartDate, pEndDate) && Just in case you forget parameters order :) dEndDate = Max (pStartDate, pEndDate) pYears = 0 pMonths = 0 pDays = 0 dEndOfMonth = CtoD (AllTrim (Str (Month (dEndDate))) + '/' + "01" + '/' + ; AllTrim (Str (Year (dEndDate)))) - 1 If Month (dStartDate) <= Month (dEndDate) pYears = Year (dEndDate) - Year (dStartDate) If Day (dStartDate) <= Day (dEndDate) pMonths = Month (dEndDate) - Month (dStartDate) pDays = Day (dEndDate) - Day (dStartDate) else If Month (dStartDate) = Month (dEndDate) pYears = pYears - 1 endif pMonths = Mod (Month (dEndDate) - Month (dStartDate) - 1 + 12, 12) pDays = dEndOfMonth - dPreCmpDate + Day (dEndDate) endif Else pYears = Year (dEndDate) - Year (dStartDate) - 1 If Day (dStartDate) > Day (dEndDate) pMonths = Month (dEndDate) - Month (dStartDate) + 12 - 1 pDays = dEndOfMonth - dPreCmpDate + Day (dEndDate) else pMonths = Month (dEndDate) - Month (dStartDate) + 12 pDays = Day (dEndDate) - Day (dStartDate) endif EndIf Return (pEndDate - pStartDate) EndFunc && of BetweenDatesPS. I found this routine in a MSDN KB article, if my memory doesn't fail.