【问题标题】:Is there a function on java 8 API to count days between two dates (both inclusive)?java 8 API 上是否有计算两个日期(包括两个日期)之间天数的函数?
【发布时间】:2017-12-19 13:18:23
【问题描述】:

ChronoUnit.DAYS.between method的签名是:

public long between(Temporal temporal1Inclusive, 时间 temporal2Exclusive)

所以最后一个日期不包括在内,因为它与示例相关:

LocalDate from = LocalDate.now();
LocalDate to = from.plusDays(1);

ChronoUnit.DAYS.between(from, to); // Result is 1

该表达式中是否还有其他函数可以获取 2 天?

否则我只能看到我可以这样做:

LocalDate from = LocalDate.now();
LocalDate to = from.plusDays(1);

ChronoUnit.DAYS.between(from, to.plusDays(1)); // Result is 2

【问题讨论】:

  • ChronoUnit.DAYS.between(from, to) + 1 有什么问题?

标签: java date java-8 count


【解决方案1】:

其实NO,但是可以使用下面的代码:

ChronoUnit.DAYS.between(from, to) + 1;

+1 将这两个本地日期之间的差加 1 天,因此我们可以说包括最后一个日期。

【讨论】:

  • 是的,它看起来很明显。我只是想知道为什么他们(java api)只在排除结束日期的情况下实现。节假日是包的,产假是包的,只有最后一天在酒店住一晚才算独占,不是吗?。
  • 因为写+1比引入像betweenEndIncluded(...)这样的方法更容易。
  • 我同意@Flown,因为使用 +1 比使用方法更容易。但是从JDK1.0开始使用temporal1 inclusive和temporal2 Exclusive
  • @Joe - 在许多从零开始的语言(包括 Java)中,上限通常是排他的。 (for (int i = 0; i < 10; i++) 等等……)
  • 所以答案是否定的,不是吗?但我们可以将其用作 ChronoUnit.DAYS.between(from, to) + 1;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-16
  • 2019-04-15
  • 1970-01-01
  • 2013-12-08
相关资源
最近更新 更多