JavaScriptで誕生日から年齢を計算する

1 min read読了の目安(約800字 2

この記事は ZOZO テクノロジーズ #2 Advent Calendar 2020 の21日目の記事です

少しでもクリスマスっぽいネタをと思い、クリスマスはキリストの誕生を祝う日だからってことで誕生日のことを書くことにしました。(あくまでキリストの誕生を祝う日であって、誕生日ではないらしいが)

はじめに

誕生日から年齢を取得する場合、yyyymmddの文字列から計算する方法などもありますが、今回はDateオブジェクトを使って計算する方法を紹介します。

計算方法

シンプルに
年齢 = 今年 - 生まれた年
です。

そして、もし今年の誕生日がまだ来ていなかったら
年齢 = 年齢 - 1
です。

サンプルコード

//生年月日
const birthday = {
    year: 2000,
    month: 12,
    date: 25
  };

function getAge(birthday){

    //今日
    var today = new Date();
 
    //今年の誕生日
    var thisYearsBirthday = new Date(today.getFullYear(), birthday.month-1, birthday.date);
 
    //年齢
    var age = today.getFullYear() - birthday.year;

    if(today < thisYearsBirthday){
        //今年まだ誕生日が来ていない
        age--;
    }

    return age;
}

console.log(getAge(birthday));