Java 日历<;=另一个日历

Java 日历<;=另一个日历,java,calendar,Java,Calendar,从数据库获取日期 while (r.next()) { String rn = r.getString(3); String sqldate = r.getString(2); // database reservation date } DateFormat RD=新的简化格式(“yyyy-MM-dd”); java.sql.Date converteddate=new java.sql.Date(RD.parse(sqldate.getTime()); Calendar c

从数据库获取日期

while (r.next()) {
    String rn = r.getString(3);
    String sqldate = r.getString(2); // database reservation date
}
DateFormat RD=新的简化格式(“yyyy-MM-dd”);
java.sql.Date converteddate=new java.sql.Date(RD.parse(sqldate.getTime());
Calendar cal=Calendar.getInstance();
Calendar cal1=Calendar.getInstance();
校准设定时间(转换日期);
计算添加(日历日期,7);

如果(cal日历具有可比性,您可以使用:

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

在您的情况下,要确定
cal
是在
cal1
之前还是等于

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

if(cal.compare)to(cal1)使用简单方法怎么样:

if (cal.compareTo(cal1) <= 0) {}
这句话是:“如果一个日期早于另一个日期,你应该做以下事情……”

我认为如果你写“before”比“compareTo”更容易阅读,即使操作是一样的

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

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

这是这样写的:“如果一个日期不在另一个日期之后,您应该执行以下操作…”还要注意,“不在之后”与“在之前或等于之前”相同。

注意,在之前等于
cal.compareTo(cal1)<0
,而不是
cal.compareTo(cal1)@assylias谢谢你指出这一点。我已经更新了答案以包含这一点,因此这是一个更完整的答案。如何检查今天是b在cal1和cal2之间?
if(今天。在(cal1)之后和&今天。在(cal2)之前){…}
如果您想知道今天是否介于cal1和cal2之间。您能解释一下0的工作吗?您是否单击了我提供的链接?“compareTo如果参数表示的时间等于此日历表示的时间,则返回值0;如果此日历的时间在参数表示的时间之前,则返回值小于0;如果此日历的时间在参数表示的时间之后,则返回值大于0。”。“谢谢,我还有一个问题,如何检查今天是B在cal1 cal2之间?今天进入cal1并检查cal1
if (!cal.after(cal1)) { ... }