Olá tudo se poderem ajudar o meu código está no meu repositório github https://github.com/GotoXY-dev/javascript-crud
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá tudo se poderem ajudar o meu código está no meu repositório github https://github.com/GotoXY-dev/javascript-crud
Oi Vinicius!
Uma das formas de comparar duas datas é calcular a diferença delas em milissegundos. Então no seu caso é preciso pegar essa informação do input e da data atual.
Depois, basta fazer a subtração da data atual pela data do input (data de nascimento) e por último converter milissegundos para anos.
O seu método idade ficaria mais ou menos assim:
idade(usuario){
var birth_date = new Date(document.getElementById("date").value);
var today = Date.now(); // pega o dia de hoje em ms
// calculando a diferença em milissegundos entre agora e o dia do nascimento
const diff = Math.abs(today - birth_date.getTime());
// 1 segundo = 1000 ms
// 1 minuto = 60 s
// 1 hora = 60 min
// 1 dia = 24 h
// 1 ano = 365 d
// diff (ms) 1 s 1 min 1 h 1 d 1 ano
// * -------- * -------- * -------- * ----- * -------
// 1000 ms 60 s 60 min 24 h 365 d
// calculando a diferença em anos
const diffInYears = Math.floor(diff / (1000 * 60 * 60 * 24 * 365));
document.getElementById("date").innerHTML = output_value;
}
O Math.floor arredonda pra baixo o valor caso ele tenha casas decimais.
Espero ter ajudado!