0
while (r.next()) {
    String rn = r.getString(3);
    String sqldate = r.getString(2); // database reservation date
}

データベースから日付を取得する

DateFormat RD = new SimpleDateFormat("yyyy-MM-dd");
     java.sql.Date converteddate = new java.sql.Date(RD.parse(sqldate).getTime());
     Calendar cal = Calendar.getInstance();
     Calendar cal1 = Calendar.getInstance();
     cal.setTime(converteddate);
     cal.add(Calendar.DATE, 7);
     if(cal<=cal1){ }// i need to this opration i dont know how

確認する必要があるのcalは<=Cal1です。何か案は?

4

2 に答える 2

9

Calendar#compareTo()カレンダーは比較可能であるため、次の方法を使用できます。

compareTo引数で表される時間がこのカレンダーで表される時間と等しい場合、値0を返します。このカレンダーの時刻が引数で表される時刻より前の場合は、0未満の値。このカレンダーの時刻が引数で表される時刻より後の場合は、0より大きい値

あなたの場合、calがの前か等しいかを判断するにはcal1、次を使用します。

if (cal.compareTo(cal1) <= 0) {}
于 2012-10-18T08:31:06.087 に答える
2

簡単な方法を使ってみませんか:

if (cal.before(cal1)) { ... }

これは、「日付が別の日付より前の場合は、次のことを行う必要があります。」と読みます。

操作は同じですが、「compareTo」より「before」と書く方が読みやすいと思います。Javaカレンダーのドキュメントもお読みください

編集:回答がより完全になるように、以下にコメントされている内容を含めるように回答を少し更新しました。それを指摘してくれたassyliasに感謝しますが、日付が別の日付より前か同じかを比較したい場合は、次を使用する必要があります。

if (!cal.after(cal1)) { ... }

これは、「日付が別の日付より後でない場合は、次のことを行う必要があります。」と読みます。また、「後ではない」は「前または等しい」と同じであることに注意してください。

于 2012-10-18T08:34:23.133 に答える