- ベストアンサー
calendarクラスの使い方について
時間データ(h:mm:ss)のみの差を求める場合に calendarクラスを利用しましたが 20時32分50秒というデータを cal.get(20,32,50)と記述して以下の プログラムを実行しても ---------結果 差:4838400 となりうまくいきません。 型があってないので、当然といえば当然かもしれませんが・・・ 本当は時刻、分、秒だけのデータで 差:115 と計算し表示させたいのです。 どうやったら、 2004,5,16,20,32,50 ではなく、 20,32,50の情報だけで時間と時間の差を 取得できるでしょうか 他の方法が思いつきませんので どなたかご存知であれば教えてください。 よろしくお願いします ---------プログラムリスト import java.util.Calendar; import java.util.Date; public class TestDate{ public static void main(String[] args){ Calendar cal1 = Calendar.getInstance(); cal1.set(2004,5,16,20,32,50); Date dat = cal1.getTime(); long date1 = dat.getTime(); Calendar cal2 = Calendar.getInstance(); cal2.set(2004,5,16,20,34,45); long date2 = cal2.getTime().getTime(); long distance = (date2 - date1) / (1000); System.out.println("差:"+distance); } } -----------------------------------------
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 とりあえず作ってみましたが、かえってコード量が増えてトホホな感じになってしまいました。 こんな感じじゃ、だめですか? (コンパイルするときは全角スペースを半角スペースに変換してからにしてください) import java.util.Calendar; import java.util.Date; public class TestDate{ public static void main(String[] args){ Calendar cal1 = Calendar.getInstance(); cal1.set(Calendar.HOUR_OF_DAY, 20); cal1.set(Calendar.MINUTE, 32); cal1.set(Calendar.SECOND, 50); Date dat = cal1.getTime(); long date1 = dat.getTime(); cal1.set(Calendar.HOUR_OF_DAY, 20); cal1.set(Calendar.MINUTE, 34); cal1.set(Calendar.SECOND, 45); long date2 = cal1.getTime().getTime(); long distance = (date2 - date1) / (1000); System.out.println("差:"+distance); } }
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
単に(H*60+M)*60+Sで秒にして引き算すればいいと思う。
お礼
できました! ありがとうございました。