CMSでプロフィールページを生成するシステムを構築する機会があり、PHPで生年月日から年齢を求める方法を探していました。
当たり前の事ですが、ロジカル的な話をすると、生年月日は月日が経っても変わりませんが、年齢は増えてゆくので動的でなければいけません。
当初は年齢を直接入力する仕様でしたが、そうすると誕生日をむかえるたびに編集しなければならないので、入力項目から除外し生年月日から動的に計算する仕様に変更しました。
ちょうどその時、Wikipediaの人物ページにある「生年月日」と「年齢」を見ながら「そういえばこの「年齢」って自動的に更新されてるのかな」なんてなんとなく眺めていたりしました。そんなタイミングと重なって、仕様変更を提案するに至ったわけです。
PHPベースでコードを検索してみたらあっさり見つかりました。
佐野裕のサーバ管理者日記 – 生年月日から年齢を計算する簡単な計算式:ITpro
「誕生日」「有名人」といえば林家ペーですが(?)、林家さんの誕生日1941年11月29日をお借りさせていただいて計算するとこのようになります。
echo floor ((date('Ymd') - 19411129)/10000);
出力結果は「71」となります。。。71歳!?
ペーさんそこそこですね!
つまり、現在の日付から誕生日の日付の差をとって、1万で割ってまるめると年齢になるというのです。
こんなシンプルなコードで答えが出せるって数学の世界ってすばらしいですね。
ただ、原理を理解しようと調べてみましたがなかなか難しかったです。
とりあえず、簡単に生年月日から年齢を求められるというお話でした。
コメントする