• ベストアンサー

日付の比較をしたいのですが・・・。

当方JAVA初心者です。 質問させてください。 日付の比較をして、差を求めたいのですが、 ------------------------------------ Ex)2004/6/4(システム日付)と   2004/6/9で日付を比較し、   「差は5日」という結果を求めたい ------------------------------------ カレンダクラスのafterやbeforeは、前か後ろかしか 判断できないですよね? そこで、簡単に日付を比較し差を求めるというやり方はあるんでしょうか? それとも年月日を崩すなどして計算しないといけないのでしょうか? 過去にこのような質問があったらすいません。 よろしくお願いいたします。

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

  • ベストアンサー
  • t-satoh
  • ベストアンサー率35% (211/591)
回答No.2

 こんなんでどうでしょうか?(^^) //サンプル import java.util.*; class Test{ public static void main(String args[]){ Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); long x; int y; cal1.set(2004,5,4); cal2.set(2004,5,9); //方法1 x = cal2.getTimeInMillis() - cal1.getTimeInMillis(); x = x / (24 * 60 * 60 * 1000); //方法2 y = cal2.get(Calendar.DAY_OF_YEAR)-cal1.get(Calendar.DAY_OF_YEAR); System.out.println(x); System.out.println(y); } }

takashi1122
質問者

お礼

サンプルありがとうございます! 方法2の方がコード少なくてヨイんですかね? JAVAだけでなくPGも初心者なもんで・・・。 ありがとうございました。

その他の回答 (1)

  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.1

longでシリアル値に直して 差分をだす。 その差を1000で割ると秒差 さらに60で割ると分差 さらに60で割ると時差 さらに24で割ると日差 が求まるのではないでしょうか。

takashi1122
質問者

お礼

やはり一度シリアル値に直すなどしないといけないのですね。ありがとうございました。

関連するQ&A