[algorithm] 生年月日から年齢を計算する簡単な計算式

2008/02/26ReBlogDevelop

生年月日から年齢を計算する簡単な計算式
(佐野裕のサーバ管理者日記:ITpro)

(今日の日付-誕生日)/10000の小数点以下切捨て。

たとえば、1985年9月15日が誕生日の人だったりすると
(20070824 – 19850915) / 10000 = 21.9909
小数点以下切り捨てなので 21 となる。

単純に誕生年だけで引き算をしてしまうと誕生日を過ぎている人はいいが、まだの人は1歳多くなってしまう。
そこで誕生月日を4桁で追加することで、
誕生日が過ぎている : 今日の月日 – 誕生日付 が正
誕生日がまだ来ていない : 今日の月日 – 誕生日付が負
になり、誕生日がまだの場合は年が一つ繰り下がる。

あとは不要な月日の部分を 10000 で割って小数点以下を切り捨てて完了。と。

まともに考えたら、日付のチェックをしてそれにより年の差し引きをして、閏年とかも考慮して・・・と面倒な事になりそうなのだが、こんな単純な式で出来るなんてアルゴリズムって奥が深いねぇ。



でも年齢の計算で一番面倒なのは和暦から西暦への変換だったりするんだよねw