【发布时间】:2014-01-08 12:45:50
【问题描述】:
我有一个 Java 问题,我需要检查项目是否已过期。这应该检查项目是否至少存在 x 个月(x 是一个整数,可以设置为任何整数值)个月。
再次澄清假设我有一包鸡蛋,我想检查我添加它们是否已经 1 个月 (dateAdded)。
我写了一个简单的比较,但它似乎没有给出正确的响应。这是代码。
public Boolean isEndOfLine() {
Calendar today = Calendar.getInstance();
if(today.compareTo(dateAdded) >= END_OF_LINE) {
return true;
} else {
return false;
}
}
行尾的值是一个整数12,即12个月。
【问题讨论】:
-
可以简化:return today.compareTo(dateAdded) >= END_OF_LINE;
-
joda.org/joda-time - 一个很好的库,用于处理 Java 中的日期和时间。比使用日历和日期更好。 stackoverflow.com/questions/13764106/…
-
END_OF_LINE 是什么? compareTo 返回 -1、0 或 1...
-
您必须首先指定您实际要检查的内容。 “超过 x 个月”是一个口语条件,不能用任何编程语言精确表达。你认为一个月是 28、29、30 还是 31 天?你想考虑一天中的时间吗?如果是这样,您是否必须考虑像 DST 这样的时区变化?
-
END_OF_LINE 是一个整数,指定要比较的月份数
标签: java date calendar comparison