こんにちは。JSPを使ってDB(MySQL)アクセスをするアプリケーションを作っています。DBのデータとしての日時は”2005/4/18”のような形(または”2005-4-18”どちらでも可。2005/04/18のように0をつけても可)を想定しております。
DBの日時は会員の入会年月日で、それを管理者が管理画面から別の日付(基準日)を選択し、POSTで投げて入会年月日と基準日を比較し、勤続年数(?会員である年数)を計算・表示したいと思っています。
そこで、上記のような2005/4/18といった形のデータを、どうやって年と月と日に分ければいいのかがよくわからず困っています。DBのフィールドはまだ変更可能です。アドバイスをお願いいたします。
No.2ベストアンサー
- 回答日時:
連続で失礼します。
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を引いたものが勤続年数になりませんかね???
No.3
- 回答日時:
Java側で差分を求めるなら
ResultSetからgetDateで値を取得してそれを元にCalendarクラスのインスタンスを取得してYEARのフィールドの値を取得して差分を求めればいいだけでは。
参考URL:http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/in …
No.1
- 回答日時:
日時のフォーマット(形式)さえ決まれば、
単純に文字列をsubstringしてから数値に変換して、
(DBの日時はTimestampのtoString()からsubstring)
引き算してはどうですか?
勤続年数なので、月以下は無視してしまう、無視できないのなら、12進法?として扱う。
マイナスの可能性を考えて予めjava.sql.Timestamp.after()かbefore()でどちらが前かチェックしておくとかも考えておくといいかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA:小数点以下の数字を取得で...
-
JavaScriptでWindowsログオンID...
-
ListViewで複数選択された項目...
-
ListView 項目の選択/選択解除...
-
「Excel VBA」 Webクエリ マク...
-
JavaScriptにおいてコンピュー...
-
Google Apps Script で、Web上...
-
POSTやGETの値の取得方法
-
JTextFieldでのダブルクリック
-
VBAでActiveDirectoryのユーザ...
-
バージョンナンバーの取得
-
Excel VBA でログインしてい...
-
特定のウィンドウのキャプチャ...
-
VB .netにて現在時刻+1時間後...
-
ASP(vbscript)におけるクライア...
-
エクセルVBAで範囲内での位置取...
-
スクロールバーの幅
-
.NETで現在時刻を常に動作させ...
-
VBA リストボックス内の値を複...
-
アクセスしてきたコンピュータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETで DataRow()を利用して...
-
ListView 項目の選択/選択解除...
-
count(*)で取得した値をJAVAの...
-
VBA:小数点以下の数字を取得で...
-
VBAでActiveDirectoryのユーザ...
-
データ数をカウントしたいのですが
-
Flexgridで選択行の列の値を取...
-
like演算子内に変数って使えな...
-
エクセルVBAで複数選択できるよ...
-
利用者側のMACアドレスを取得し...
-
Spreadの選択行の取得について
-
JavaScriptにおいてコンピュー...
-
「Excel VBA」 Webクエリ マク...
-
コンボボックス表示文字列を取...
-
getParameter と getAttribut...
-
JavaScriptでWindowsログオンID...
-
ListViewで複数選択された項目...
-
VBA リストボックス内の値を複...
-
VBScriptで数値にコンマを付け...
-
VB .netにて現在時刻+1時間後...
おすすめ情報