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”更容易阅读,即使操作是一样的。另请阅读 Java Calendar 的文档

编辑:我已经对答案进行了一些更新,以包括下面评论的内容,因此答案更加完整。感谢 assylias 指出,但如果您想比较某个日期是否早于或等于另一个日期,您应该使用:

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

内容如下:“如果某个日期不在另一个日期之后,您应该执行以下操作..”。另请注意,“not after”与“before or equal to”相同。

于 2012-10-18T08:34:23.133 回答