DBから日付を取得し、別に設定した日付と比較する方法

 こんにちは。JSPを使ってDB(MySQL)アクセスをするアプリケーションを作っています。DBのデータとしての日時は”2005/4/18”のような形(または”2005-4-18”どちらでも可。2005/04/18のように0をつけても可)を想定しております。
 DBの日時は会員の入会年月日で、それを管理者が管理画面から別の日付(基準日)を選択し、POSTで投げて入会年月日と基準日を比較し、勤続年数(?会員である年数)を計算・表示したいと思っています。
 そこで、上記のような2005/4/18といった形のデータを、どうやって年と月と日に分ければいいのかがよくわからず困っています。DBのフィールドはまだ変更可能です。アドバイスをお願いいたします。

投稿日時 - 2005-04-19 00:12:09

QNo.1339211

困ってます

質問者が選んだベストアンサー

連続で失礼します。
DBをTimestampeで仮定してます。

DBから取得した入会日を
Timestamp entry;
とします。
管理画面からの基準日を
Timestamp base;
とします。
ここで基準日>入会日なら
long l_kinzoku = base.getTime() - entry.getTime();
で、差分を求めて、
Timestamp kinzoku = new Timestamp(l_kinzoku);
とします。
kinzokuは1970年1月1日からの経過時間になっているので、kinzokuの西暦部分から1970を引いたものが勤続年数になりませんかね???

投稿日時 - 2005-04-19 00:54:15

お礼

早速のご回答ありがとうございました!おっしゃる方法でやってみます。どうもありがとうございました。

投稿日時 - 2005-04-19 23:07:49

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(2件中 1~2件目)

ANo.3

Java側で差分を求めるなら
ResultSetからgetDateで値を取得してそれを元にCalendarクラスのインスタンスを取得してYEARのフィールドの値を取得して差分を求めればいいだけでは。

参考URL:http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/index.html

投稿日時 - 2005-04-19 12:27:11

ANo.1

日時のフォーマット(形式)さえ決まれば、
単純に文字列をsubstringしてから数値に変換して、
(DBの日時はTimestampのtoString()からsubstring)
引き算してはどうですか?
勤続年数なので、月以下は無視してしまう、無視できないのなら、12進法?として扱う。
マイナスの可能性を考えて予めjava.sql.Timestamp.after()かbefore()でどちらが前かチェックしておくとかも考えておくといいかもしれません。

投稿日時 - 2005-04-19 00:42:45

あなたにおすすめの質問

[PR] お役立ち情報