Как создать программу, которая рассчитает сколько пользователю полных лет и через какой промежуток времени пользователю нужно будет поменять паспорт?
гугли js библиотеки для работы с датами

Day.js
function toISODate(milliseconds) {
    var date = new Date(milliseconds)
    var stap = 24 // Прибавляем к дате число смены пасспорта, допустим в 45 лет

    var y = date.getFullYear() + stap
    var m = date.getMonth() + 1
    var d = date.getDate()
    m = m < 10 ? '0' + m : m
    d = d < 10 ? '0' + d : d

    return [y, m, d].join('-')
}

var date1 = new Date()
var date2 = new Date(2001, 11, 30)

var timeSec = Math.abs(date1.getTime() - date2.getTime()) // Выясняем сколько лет парню
var timeSec2 = Math.abs(date2.getTime() + timeSec) // Прибавляем к его возрасту современную дату для вычисления сколько ему лет на сегодня

let divDate = document.createElement('div')
divDate.innerHTML = `Ближайшая смена пасспорта : ${toISODate((milliseconds = timeSec2))}`
document.body.appendChild(divDate)

Это бред конечно ещё тот, но может натолкнуть вас на какую либо мыслю, вообще лучше делать это на php в плане легче.