【发布时间】:2018-02-03 04:59:47
【问题描述】:
我正在比较治疗的开始日期和结束日期,以检查它是否持续超过 6 个月。如果该期间不包括 2 月,那么一切都很好,但是如果我将 1 月 1 日与 6 月 30 日进行比较,则会引发我的异常。为了比较这两个时期,我将开始日期添加 6 个月并将结果与结束日期进行比较,如下所示:
Date start = new Date(2017,1,1);
Date end = new Date(2017,6,30);
Calendar startOfTreatment = new Calendar.getInstance();
startOfTreatment.setTime(start);
Calendar endOfTreatment = new Calendar.getInstance();
endOfTreatment.setTime(end);
startOfTreatment.add(Calendar.MONTH, 6);
if (startOfTreatment.compareTo(endOfTreatment) > 0) {
throw new InfinishedTreatmentException(startOfTreatment,endOfTreatment);
}
我该如何解决这个问题?
【问题讨论】:
-
可能值得发布更多代码,例如 startOfTreatment 的填充方式 - 它是实际日期吗?一年?
-
我添加了我正在使用的测试
-
2 月 1 日之后的六个月是 8 月 1 日,实际上是晚于 7 月 30 日。这不符合您的预期吗?
-
即使我在 7 月 1 日测试时也没有同样的问题
标签: calendar java-7 java-time date-comparison