JavaScriptで年齢計算して「○歳○ヵ月○日」みたいに表示

例えばこの記事を書いてる現在は 2019年10月22日  、
そして僕の誕生日を仮に 1995年01月01日 とします。

そのときJavaScriptを使って、こういう風に表示してみたかったんです。

別に 「生後○年○ヵ月○日」と表すのは赤ん坊だけじゃありません。

子どもだって大人だってこういう年齢表示したいことはあるはずです。

やってみたら意外と簡単だったので、
ここでは JavaScriptで 生後○歳○ヵ月○日 と表示する方法 を紹介します。

年齢計算を行うコードの書き方はこんな感じ

まずはどう生年月日から「生後○歳○ヵ月○日」の表現に変換できるのか・・・

いきなりそのコードから考えて書いてみました。

ここでは Dateオブジェクトを作って求めてみることにします。

そのやり方は次の通り

 

1.まず年齢計算につかう現在年月日と生年月日取得

▼ こういうコード

Dateオブジェクトのコンストラクタは 月だけが 0~ 11の範囲

これが意外と地雷的なコードになるので、Dateを作るときは要注意です。

 

あとはこの2つから差を求めるだけ

2.まずは両者のDateオブジェクトの差を日数として取得

3.その次に○歳○ヵ月○日のそれぞれを計算

4.最後に適当にdiv要素とか用意して表示

こういう感じ

やり方さえ分かってれば難しくもなんともないですね。

ちなみに全体のコードを載せると次の通り

ちなみに上のコードを再利用しやすいように関数化もしてみました。

全体のコードとして掲載すると次の通りです。

▼ 誕生日から現在までの「○歳○ヵ月○日」を表示する関数

何をしてるかはコメントを見れば大体わかるはず

 

実際にこのコードを 2019年10月22日 に試してみるとこうなりました。

ちゃんと計算できてる。

ただし未来の年齢を入力すると「あなたの年齢は生後-1歳3ヶ月8日 」みたいにマイナスの年齢になってしまうので、何かしら対策が必要です。

以上、JSで年齢計算を○歳○ヵ月○日で求める方法でした。ではまた(^_^)/~

Commentsこの記事についたコメント

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください