Lparameters BirthDate,YearsLimit Local llok, MoLimit, MonthOld MoLimit = YearsLimit * 12 && Number of total month within limit MonthOld = 12 * (Year(Date()) - Year(BirthDate)) && Total Months between years MonthOld = MonthOld + 12 - Month(BirthDate) + Month(Date()) && Month difference add to years difference *? 'MoLImit=',molimit,MonthOld Do Case Case MonthOld > MoLimit llok = .T. Case MonthOld < MoLimit llok = .F. Otherwise llok = Day(BirthDate) => Day(Date()) && Check day of month Endcase Return llok>The system I am writing needs to validate people applying for an account as being 18 years old or older. Anyone under 18 should not be allowed an account. It sounds simple, but one of my versions that included detection of leap years got very complicated, hence my question here.