• ベストアンサー

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); } } -----------------------------------------

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

  • ベストアンサー
  • PecoPlus
  • ベストアンサー率76% (144/188)
回答No.1

 こんばんは。  とりあえず作ってみましたが、かえってコード量が増えてトホホな感じになってしまいました。  こんな感じじゃ、だめですか? (コンパイルするときは全角スペースを半角スペースに変換してからにしてください) 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);   } }

javajavaer
質問者

お礼

できました! ありがとうございました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

単に(H*60+M)*60+Sで秒にして引き算すればいいと思う。

関連するQ&A