生年月日から年齢を計算する簡単な計算式
最近知ったんですが、生年月日から年齢を計算する簡単な計算式というのがあるそうです。
(今日の日付-誕生日)/10000の小数点以下切捨て。
PHPで書くとこんな感じです。
echo (int)((20070608 - 19850101)/10000);
アルゴリズムって芸術ですね。
※補足1(2007/8/21)
「公の世界では年齢の判断って業務ごとに異なり、誕生日の前日に年齢取得させる業務が多い」とのことを聞きました。くわしくはこちらをご覧ください。alittlethingさん、ご指摘ありがとうございました。
※補足2(2007/8/21)
このエントリーで大きくわけて2つの批判をいただいていると理解しております。1つ目は「ソースコードとしてひどい」というものです。これについては簡単に試せるようにサンプルとして載せただけなので、PHPの実装として適切であるかどうかは読者のご判断におまかせします(最適な実装について具体例を挙げて説明してくださった皆さんありがとうございました)。
ただ、一応「動く」という意味では批判されるほどのことなのかなあと思いました。
2つ目は「これアルゴリズムといえないのでは?」というものです。まぁそうかもしれませんが、こんな些細なことで大騒ぎされるのもどうかと思います。この記事にその旨一言コメントいただければ済む話しな気がします。



Recent Comments