-3

我被要求为在添加后恰好一年到期的政策编写到期方法。我已经编写了在添加的初始日期上增加一年的方法。

现在我正在尝试编写另一个返回布尔值的方法,以查看日期 A 是否超过日期 B。如果它已过去,则表示它已过期,因此它将返回 true。有人可以帮我解决语法,不知道该怎么做。谢谢

public ExpirablePolicy(float a, Date d){
    super(a);
    amount = a;
    expiryDate = new Date();
    GregorianCalendar aCalendar = new GregorianCalendar();
    aCalendar.add(Calendar.YEAR,1);
    expiryDate = aCalendar.getTime();
} 

public boolean isExpired(){
    //expiry method;
4

4 回答 4

6

这可以用Date.before()or来完成Date.after()

if (d.after(expiryDate)) { ... }

或者

if (!d.before(expiryDate)) { ... }

第一个比较计算结果trued严格大于expiryDate。第二个评估true是否d大于或等于expiryDate

可以达到同样的效果Date.compareTo()

于 2013-02-06T15:36:12.503 回答
1

尝试这个:

public boolean isExpired(Date a, Date b) {
    return a.before(b);
}
于 2013-02-06T15:38:29.433 回答
1

检查 java.util.Date。它有一个名为 compareTo 的方法。

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Date.html#compareTo(java.util.Date)

于 2013-02-06T15:38:46.163 回答
0

只需使用Date.compareTo(Date)方法:

public boolean isExpired(Date d1, Date d2) {
    return d1.compareTo(d2) > 0;
}
于 2013-02-06T15:38:00.897 回答