日历<=另一个日历

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 。 有任何想法吗?

如何使用简单的方法:

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

其内容如下:“如果日期在另一个日期之前,则应执行以下操作……”。

我认为如果你写“之前”比“compareTo”更容易阅读,即使操作是相同的。 另请阅读Java Calendar的文档 。

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

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

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

日历是可比较的,您可以使用Calendar#compareTo()方法 :

compareTo返回值0,如果参数表示的时间等于此Calendar表示的时间; 如果此Calendar的时间早于参数表示的时间,则小于0的值; 如果此Calendar的时间在参数表示的时间之后,则值大于0

在您的情况下,要确定cal是否等于cal1 ,您将使用:

 if (cal.compareTo(cal1) <= 0) {}