日历< =另一个日历

时间:2012-10-18 08:29:47

标签: java calendar

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是&lt; = Cal1。有什么想法吗?

2 个答案:

答案 0 :(得分:9)

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

  如果参数表示的时间等于此Calendar表示的时间,则

compareTo返回值0;如果此Calendar的时间早于参数表示的时间,则小于0的值;如果此日历的时间在参数

表示的时间之后,则值大于0

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

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

答案 1 :(得分:2)

使用简单方法怎么样:

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

这样写着:“如果日期在另一个日期之前,则应该执行以下操作......”。

我认为如果你写“之前”比“compareTo”更容易阅读,即使操作是相同的。 Also read the documentation for Java Calendar

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

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

这样写着:“如果日期不是在另一个日期之后,则应该执行以下操作......”。另请注意,“not after”与“before or equal”相同。