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
。有什么想法吗?
答案 0 :(得分:9)
日历是可比较的,您可以使用Calendar#compareTo()
method:
如果参数表示的时间等于此Calendar表示的时间,则表示的时间之后,则值大于0
compareTo
返回值0;如果此Calendar的时间早于参数表示的时间,则小于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”相同。