gpt4 book ai didi

java - ChronoUnit.MONTHS. Between 不遵循半开放方法

转载 作者:行者123 更新时间:2023-12-01 17:46:49 25 4
gpt4 key购买 nike

我有 2 个 LocalDate,我想找出它们之间的差异:

LocalDate date1 = LocalDate.of(2018,11,30);
LocalDate date2 = LocalDate.of(2019, 5, 1);

当我执行时:

long mthsDiff = ChronoUnit.MONTHS.between(date1, date2);

这会返回 5,但实际上应该是 6。

为什么ChronoUnit.MONTHS. Between不遵守半开放方法?它不应该返回四月 (2019-04-30) 吗?我错过了什么吗?

我知道第二个参数是排他性的。以下是我期望的场景:

date1 = 2018-11-16
date2 = 2019-04-15
expect 5

date1 = 2018-11-16
date2 = 2019-04-16
expect 5

date1 = 2018-11-16
date2 = 2019-04-17
expect 6

date1 = 2018-11-16
date2 = 2019-04-15
expect 5

最佳答案

我认为the documentation一切都在这里说:

The calculation returns a whole number, representing the number of complete units between the two temporals. For example, the amount in hours between the times 11:30 and 13:29 will only be one hour as it is one minute short of two hours.

11 月 30 日至 5 月 1 日之间的整月数为 5:

  1. 十二月
  2. 一月
  3. 二月
  4. 三月
  5. 四月

为什么你认为应该是 6?半开只是说第一天是包含的,最后一天是排除的。排除5月1日没有影响,整个4月仍在范围内。算上11月30日,还不是整月,所以还是5个月。

关于java - ChronoUnit.MONTHS. Between 不遵循半开放方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54258578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com