今日は、誕生日から年齢を計算するプログラムを作成しました。
そんな大したプログラムでは無いですがメモメモ。
今回はJavaで作成しましましたが
その他の言語でも汎用的に使えるようですね。
まずは今日の日付と誕生日をyyyymmdd形式にします。
(yyyyは年、mmは月、ddは日)
今日の日付から誕生日の日付を引いて、10000で割るだけです。
例題:
今日 2008年9月17日
誕生日 1985年4月13日
(20080917 - 19850413) / 10000 = 23.0503
となります。もしもMySQLのテーブル(BirthDay)に誕生日のデータが
年(Year)、月(Month)、日(Day)と別々に格納されている場合には
select ((CURDATE() - 1) - (Year * 10000 + Month * 100 + Day)) / 10000 from
BirthDay;
で、年齢を取り出すことができます。
「CURDATE() - 1」で、今日の日付をyyyymmdd形式で取得できます。
この式のことは全然知りませんでした。
なので、java.util.Calendarを使って
今日の日付から誕生日の日付を引いて
365で割ったり閏年を考えたりと
めちゃくちゃ無駄なことをするところでした。
こんな簡単なことを知らないなんて
勉強不足ですorz
ただ、場合によってはこの計算式を
そのまま使えない場合もあるようなので
気をつけてください。
http://d.hatena.ne.jp/alittlething/20070827/p1
posted by 夏ミカン at 13:23| 沖縄 ☔|
Comment(4)
|
TrackBack(1)
|
Java
|

|