java - 查找两个日期之间天数的算法

标签 java algorithm

我正在研究一个学校问题,以找出算法来查找两个给定日期之间的天数,然后在 Java 中实现该算法。

在这里找到了感兴趣的算法: http://www.sunshine2k.de/articles/coding/datediffindays/calcdiffofdatesindates.html (第4点)

它是更有效的算法之一,因为它在实现过程中需要考虑的条件最少。我理解它在这种情况下是如何工作的,但我无法完全理解在其他地方使用原点/引用点,因为似乎简单的减法就可以完成大多数工作。

例如。要找出 9 和 5 之间的差异, 我可以只做 9-5 而不是

引用=1

差异 = (9-ref) - (5-ref)

问题:为什么在这种情况下使用此引用/原点有效?还有哪些情况我可以考虑使用这个引用/原点来解决问题?

最佳答案

软件工程的第一条规则是“不要重新发明轮子”。

在 Java 8 及更高版本中获取两个日期之间的天数很简单,无需编写自己的算法:

    LocalDate d2 = LocalDate.now();
    LocalDate d1 = LocalDate.of(1950, Month.JANUARY, 1);
    long days = d1.until(d2,ChronoUnit.DAYS); 

或者更好

    long days = ChronoUnit.DAYS.between(d1, d2);

关于java - 查找两个日期之间天数的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45774243/

相关文章:

java - 获取以下异常 org.apache.bcel.verifier.exc.AssertionViolatedException

java - 如何使用自定义消息记录 jpa 查询?

c++ - 使用 aho-corasick 算法崩溃?

algorithm - 线性规划算法

java - 阅读日历日期

java - Android openGL渲染器返回空指针异常

algorithm - 如果减少一条边的权重,则更新最短路径距离矩阵

javascript - 应该用什么图来表示算法逻辑

java - 在 Java 中测试素数的最快方法是什么?

java - 如何在 Java 中获取主机名的规范名称?