Overview: The dateAdd determines a future date based on three parameters: elasped days, elasped months, and elasped years. Based on these three parameter a future date is calculated.
function dateAdd(startDate, numDays, numMonths, numYears) { var returnDate; var yearsToAdd; var month; returnDate = new Date(startDate.getTime()); yearsToAdd=numYears; month = returnDate.getMonth()+ numMonths; if (month > 11) { yearsToAdd = Math.floor((month+1)/12); month -= 12*yearsToAdd; yearsToAdd += numYears; } returnDate.setMonth(month); returnDate.setFullYear(returnDate.getFullYear() + yearsToAdd); returnDate.setTime(returnDate.getTime()+60000*60*24*numDays); return returnDate; }