Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 不遵循半开放进近的时间间隔_Java_Java Time - Fatal编程技术网

Java 不遵循半开放进近的时间间隔

Java 不遵循半开放进近的时间间隔,java,java-time,Java,Java Time,我有两个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不遵守半开放方法?它不应该回到4月份吗(2019-04-

我有两个
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
不遵守
半开放方法
?它不应该回到4月份吗(
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
我想这说明了一切:

计算将返回一个整数,表示 完成两个时态之间的单位。例如,在 从11:30到13:29之间的时间只有一个小时 两小时差一分钟

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

  • 十二月
  • 一月
  • 二月
  • 行军
  • 四月
  • 你为什么认为应该是6?半开放只是说第一天是包容性的,最后一天是排他性的。除去5月1日,一切都不起作用,整个4月仍然在这个范围内。包括11月30日还不是一个完整的月份,所以仍然是5个月。

    我想这说明了一切:

    计算将返回一个整数,表示 完成两个时态之间的单位。例如,在 从11:30到13:29之间的时间只有一个小时 两小时差一分钟

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

  • 十二月
  • 一月
  • 二月
  • 行军
  • 四月
  • 你为什么认为应该是6?半开放只是说第一天是包容性的,最后一天是排他性的。除去5月1日,一切都不起作用,整个4月仍然在这个范围内。包括11月30日还不是一个完整的月份,所以还是5天。

    正如医生所说

    该计算返回一个整数,表示两个时间单位之间的完整单位数


    因此,两个月之间有5个完整的月份

    "2018-11-30"
    December -> 1
    January  -> 2
    February -> 3
    March    -> 4
    May      -> 5
    "2019-05-01"
    
    正如医生所说的

    该计算返回一个整数,表示两个时间单位之间的完整单位数


    因此,两个月之间有5个完整的月份

    "2018-11-30"
    December -> 1
    January  -> 2
    February -> 3
    March    -> 4
    May      -> 5
    "2019-05-01"
    

    你介意接受回答还是在评论中询问细节你介意接受回答还是在评论中询问细节