我正在研究一个学校问题,以找出算法来查找两个给定日期之间的天数,然后在 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/