Neste artigo você vai aprender a como calcular a idade por meio da data de nascimento, utilizando uma data no padrão YYYY/MM/DD

calcular a idade por meio da data de nascimento capa

Fala programador(a), beleza? Bora aprender mais sobre datas em JavaScript!

Neste artigo vou utilizar um snipet famoso da internet que resolve o problema de cálculo de idade

Apenas adaptei ele para modernizar um pouco o código JavaScript, mas vem diretamente do StackOverFlow

Vamos primeiramente criar uma função que recebe a data no formato YYYY/MM/DD

Que é o formato universal para datas

Vamos criar objetos a partir da classe Date, serão dois:

  • Um com a data atual;
  • E o outro com a data baseada na data de aniversário;

Depois vamos fazer subtrações com os valores, para resgatar a diferença entre anos

Que justamente é a idade final! 🙂

Veja um exemplo de código:

function getAge(dateString) {

    const today = new Date();
    const birthDate = new Date(dateString);
    let age = today.getFullYear() - birthDate.getFullYear();
    const m = today.getMonth() - birthDate.getMonth();
    
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
    
    return age;
}

console.log(getAge("1991/05/02")) // 31

A condicional no meio da função serve para resolver possíveis problemas

Por exemplo o de ano bissexto, conhecido também como leap year

Quer aprender mais sobre JavaScript? Confira o vídeo abaixo:

Conclusão

Neste artigo você aprendeu a como calcular a idade por meio da data de nascimento

Criamos uma função que calcula a diferença entre duas datas

A data do aniversário e também a data atual, resultado na idade do usuário

Note que os dados precisam estar no formato ANO/MÊS/DIA, que é comumente o mais utilizado

Deseja programar de forma profissional? Confira o nosso treinamento completo clicando aqui.

Uma plataforma de cursos com projetos completos, comunidade de alunos e muito mais!

Há também o nosso canal no YouTube, com muito conteúdo gratuito de qualidade!

Subscribe
Notify of
guest

0 Comentários
Inline Feedbacks
View all comments