【发布时间】:2019-08-27 20:12:27
【问题描述】:
我正在尝试计算两个 LocalDate 对象之间的差异,结果似乎是关闭的,但不是每次。
我正在使用 Period 构造。下面的代码显示了一个返回预期结果的示例(我得到了here)和另一个给我“错误”结果的示例。我把它放在引号中是因为我不确定这是否真的是错误的,或者预期值是否错误。但是请注意,如果我使用来自calculator.net 的在线计算器,我会得到我期望的结果。
public void manualTestPeriodBetween() {
//works fine - expected result obtained
LocalDate start = LocalDate.of(2014, 2, 14);
LocalDate end = LocalDate.of(2017, 8, 1);
Period result = Period.between(start, end);
Period expected = Period.of(3, 5, 18);
checkPeriods(expected, result);
//does not work as expected
start = LocalDate.of(2017, 5, 19);
end = LocalDate.of(2019, 7, 13);
result = Period.between(start, end);
expected = Period.of(2, 1, 25);
checkPeriods(expected, result);
}
private void checkPeriods(Period expected, Period result) {
System.out.println("expected Period = " + expected + ", resulting Period = " + result);
if (result.equals(expected)) {
System.out.println("SUCCESS - result Period matches expected");
} else {
System.out.println("FAIL - result Period not matched");
}
}
输出:
expected Period = P3Y5M18D, resulting Period = P3Y5M18D
SUCCESS - result Period matches expected
expected Period = P2Y1M25D, resulting Period = P2Y1M24D
FAIL - result Period not matched
谁能帮我弄清楚我是否遗漏了什么或预期的结果是错误的(在我的代码和在线日期计算器中)?或者我什至没有考虑其他的事情。
这是从在线日期计算器获得的结果截图:
【问题讨论】:
标签: java