0

この単純なタスクの実装に問題があります。

基本的に、2 つの日付 (古い日付と新しい日付) を比較したいと考えています。古い日付が x か月以上 y 日以上経過しているかどうかを知りたいです。

int monthDiff = new Date().getMonth() - detail.getCdLastUpdate().getMonth();
int dayDiff = new Date().getDay() - detail.getCdLastUpdate().getMonth();
System.out.println("\tthe last update date and new date month diff is --> " + monthDiff);
System.out.println("\tthe last update date and new date day diff is --> " + dayDiff);

古い日付が 2012-09-21 00:00:00.0 の場合、現在、負の数値が返されます。古い日付が new Date() の正確に 6 か月と 4 日前であるかどうかを確認する必要があります。私は両方の絶対値を使用することを考えていますが、今日は頭に浮かびません。

編集:jodaについては知っていますが、使用できません。Java JDK を使用する必要があります。編集 2: リストされている方法を試してみます。すべて失敗した場合は、Joda を使用します。

4

3 に答える 3

6

JDK の日付には、ブール値を返す before メソッドと after メソッドがあり、タスクを実行できます。

Date now = new Date();
Calendar compareTo = Calendar.getInstance();
compareTo.add(Calendar.MONTH, -6);
compareTo.add(Calendar.DATE, -4);
if (compareTo.getTime().before(now)) {
   // after
} else {
   // before or equal 
}
于 2013-04-17T15:19:43.173 に答える