超驚愕画期的計算方法

| コメント(0) | トラックバック(0)

なにやら漢字ばかりで中国テイストなタイトルで始まりました、
今日のブログです。
なんとなく漢字をたくさん並べてみたくなったんで、、。

というか、タイトルはとても大げさに書いてしまいました。
知ってる人にとっては、全然驚愕でもなければ、画期的でもないと思います。
自分は今日初めて知ってかなり感動しました。

仕事でとある関数(プログラム)を書くことになりました。

「生年月日から、年齢を求める」というものです。

はじめは、

年同士を引き算して、
次に、生まれた月が、今月よりも前か後か、それとも同じ月なのかを判別して、、、、
同じ月だったら日にちを比較してーーー、、、

とか、数十秒頭の中で考えて、ごちゃごちゃめんどくさいなとか
思ってたんです。


もしかして、すでに年齢計算アルゴリズムとかサンプルコードがあるんじゃないかな、
と期待しながらネットで検索してみたら、
すごい計算方法を見つけて、ひとりで感激してました。

その計算方法とは、、

(「年齢を求めたい日付」-「生年月日」)÷ 10000 の小数点以下切り捨て

です。
たとえば、1987年7月8日生まれの人の、2009年4月22日時点での年齢は、

(20090422 - 19870708) ÷ 10000 = 21.9714

で、21歳となります。

ちゃんと計算できてるのかよ?
ということで、確かめてみると、

2009年7月7日時点での年齢 (20090707 - 19870708) ÷ 10000 = 21.9999
2009年7月8日時点での年齢 (20090708 - 19870708) ÷ 10000 = 22.0000
2009年7月9日時点での年齢 (20090709 - 19870708) ÷ 10000 = 22.0001

ということで、ちゃんと正しい年齢が計算できています。
うるう年の2月29日生まれの人でもちゃんと計算できています。

年齢計算プログラムの記述が1行で済んで、
とても満足したヒューガでした。

トラックバック(0)

トラックバックURL: http://2dera.net/mt/cgi-bin/mt-tb.cgi/381

コメントする

このブログ記事について

このページは、ヒューガが2009年4月22日 23:24に書いたブログ記事です。

ひとつ前のブログ記事は「FF7アドベントチルドレン」です。

次のブログ記事は「Communication in English」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。