- PR -

javaの時間比較について

1
投稿者投稿内容
K5
常連さん
会議室デビュー日: 2006/04/22
投稿数: 25
投稿日時: 2006-08-03 18:26
お世話になります。
java初心者です。

javaで時間の比較を行うのに困っています。

現在時刻(HHmm)と比較する対象が4桁(24h)記述の為、4桁値を比較して何分差があるかというのが取れません。
具体的にいうと、1925(19時25分)と1831(18時31分)の間か何分か知りたいということになります。

現在時刻は、以下のコードで4桁で取れるのはわかっています。
Calendar cal = new GregorianCalendar();
SimpleDateFormat simpleDf = new SimpleDateFormat("HHmm");
System.out.println("現在時刻→" + simpleDf.format(cal.getTime()));

上記のコードで取得した1925とパラメータで受け取った1831を比較し、
この後どうすれば、間の分数がとれるでしょうか。
よろしくお願いします。




[ メッセージ編集済み 編集者: K5 編集日時 2006-08-03 18:42 ]

[ メッセージ編集済み 編集者: K5 編集日時 2006-08-03 18:43 ]
vincent
大ベテラン
会議室デビュー日: 2004/07/09
投稿数: 142
投稿日時: 2006-08-03 18:36
Date#.getTime()で取得したlong値の差をとって
60000(ミリ秒)で割ってやればよいでしょう。
K5
常連さん
会議室デビュー日: 2006/04/22
投稿数: 25
投稿日時: 2006-08-03 18:50
引用:

vincentさんの書き込み (2006-08-03 18:36) より:
Date#.getTime()で取得したlong値の差をとって
60000(ミリ秒)で割ってやればよいでしょう。



getTime()で取得できるのは、
Date オブジェクトで表される、1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数と書いてありました。
4桁数値をどこで使うのかよくわかりません。
すいません。もうちょっとヒントを頂けないでしょうか?
vincent
大ベテラン
会議室デビュー日: 2004/07/09
投稿数: 142
投稿日時: 2006-08-03 18:58
こんな感じで。

try {
 SimpleDateFormat format = new SimpleDateFormat("HHmm");
 long time1 = format.parse("1825").getTime();
 long time2 = format.parse("1831").getTime();
 long diff = (time2 - time1) / 60000;

 System.out.println("差=" + diff);

} catch (ParseException e) {
 e.printStackTrace();
}
K5
常連さん
会議室デビュー日: 2006/04/22
投稿数: 25
投稿日時: 2006-08-03 19:50
vincent様

ありがとうございます。
頂いたコードで解決できました。
大変助かりました。
「format.parse("1825")」左記のように書くとは全然わかりませんでした。
ありがとうございました。
感謝です。
1

スキルアップ/キャリアアップ(JOB@IT)