タイトル通り、今回は生年月日から現在の年齢を求める方法についてです。
プロジェクトにこの機能を実装する際、綺麗なアルゴリズムを考えられる気がしなかったのと、既に誰かがやっているだろう!と調べたら案の定だったので、備忘録兼今後のコピペ元としてまとめ。
参考にさせていただいた記事はこちらから。
[JavaScript] 誕生日から現時点の年齢を求める | コピペで使える JavaScript逆引きリファレンス
https://javascript.programmer-reference.com/js-calculation-age/
参考サイトに掲載されていたコードはこちら。
そのまま転載させて頂いております。
jQuery
等は使用せず、素の JavaScript
で動作します。
function getAge(year, month, day){ // 生年月日 var birthday = new Date(y, m-1, d); // 今日の日付を取得 var today = new Date(); // 今年の誕生日を計算 var thisYearBirthday = new Date(today.getFullYear(), birthday.getMonth(), birthday.getDate()); // 今年から生年月日の年を引く var age = today.getFullYear() - birthday.getFullYear(); //今年の誕生日を迎えていなければ age-1 を返す return (today < thisYearBirthday) ? age-1 : age; }
処理としては以上です。
関数化されているので、そのまま転載できます。
引数に、生年月日の 年、月、日をそれぞれ渡すと、現在の年齢が返却されます。
なお、参考サイトには「数値チェックや日付整合性チェックは行っていないため、必ずそれらチェックが済んだ正しい年月日を引数に指定してください。」とありましたので、こちらの処理はご自身で実装するようにしてください。
以上、JavaScript で生年月日から現在の年齢を求める方法についてでした。
ご参考になれば幸いです。