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

Создать программу которая рассчитает сколько пользователю полных лет и через какой промежуток времени пользователю нужно будет поменять паспорт. Пользователь должен будет ввести фамилию, имя, отчество (полностью) и дату рождения в формате dd.mm.yyyy. Например: Ввод: Иванов Иван Иванович 01.01.2001. Вывод программы: Здравствуйте Иванов И.И. на данный момент Вам 19 лет. Через 21 день Вам необходимо будет заменить паспорт. Помогите, пожалуйста, только начал изучать JS, задали такое задание и без понятия, как рассчитать дней до смены паспорта, все перепробовал, что видел в интернете, ничего не получилось Вот код в HTML:

let BtnStart = document.querySelector("#Btn1");
let Inp0 = document.querySelector("#Inp0");
let Inp1 = document.querySelector("#Inp1");
let Out = document.querySelector(".Out");

BtnStart.onclick = function(){

let Name0 = ("Здравствуйте, " + Inp0.value + "," + " на данный момент вам " );

if(Inp0.value.length === 0){
    Name0 = "Здравствуйте, " + "X," + " на данный момент вам ";
}
            var strDate = document.getElementById('Inp1').value;
            var arrDate = strDate.split(/\D+/g).reverse();
            var date = new Date(arrDate[2], arrDate[1] - 0, arrDate[1]);
            var now = new Date();
            var age = now.getFullYear() - date.getFullYear();
            now.setFullYear(date.getFullYear());
            if (now < date) age--;
            if (isNaN(age)) age = "X";
    

Out.innerHTML = Name0 + age +" лет ";
}
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="style\style.css">
    <script defer src="script\year.js"></script>
    <title>Паспорт</title>
</head>
<body>
    <a>Введите ФИО: </a><input id="Inp0" placeholder="Full name">
    <a>Введите дату рождения: </a><input id="Inp1" type="date" value="" placeholder="DD.MM.YYYY">
    <button id="Btn1">start</button>
    <div class="Out"></div>
</body>
</html>


Ответы (1 шт):

Автор решения: pyduti

const btnStart = document.querySelector("#Btn1");
const inp0 = document.querySelector("#Inp0")
const inp1 = document.querySelector("#Inp1");
const out = document.querySelector(".Out");

btnStart.onclick = function(){

let name0 = ("Здравствуйте, " + inp0.value + "," + " на данный момент вам " );

if(inp0.value.length === 0) {
    name0 = "Здравствуйте, " + "X," + " на данный момент вам ";
}
    let strDate = document.getElementById('Inp1').value;
    if (strDate === '') {
        age = "X"
        out.innerHTML = name0 + age +" лет ";
    } else {
        let birthYear = strDate.replace(/\-.*/, '')
        let date = new Date().getFullYear()
        let age = Number(date) - Number(birthYear);
        out.innerHTML = name0 + age +" лет ";
    }
}
     
    <a>Введите ФИО: </a><input id="Inp0" placeholder="Full name">
    <a>Введите дату рождения: </a><input id="Inp1" type="date" value="" placeholder="DD.MM.YYYY">
    <button id="Btn1">start</button>
    <div class="Out"></div>

→ Ссылка