计算日期之间的天数

时间:2013-01-03 09:11:57

标签: java

我知道计算两个日期之间的天数。

Java, Calculate the number of days between two dates

但是我无法理解如何在下面的代码中进行计算。特别是下面突出显示的那个。

return (int)( (d2.getTime() - d1.getTime()) / ( 1000 * 60 * 60 * 24 ));

请让我知道这背后的逻辑。

5 个答案:

答案 0 :(得分:5)

您关联的问题有answer from Jon Skeet。你应该考虑这一点。对于您的代码,两个日期之间的差异以毫秒返回。要转换为一天,计算结果为:

(1000       *    60     *  60     *    24));
 millisecond  seconds    minutes    hours in day ==> One day

答案 1 :(得分:0)

时间以毫秒表示,因此 24 * 60 * 60 * 1000 因为

24 * there are 24 hours in a day
60 * there are 60 minutes in an hour
60 * there are 60 seconds in a minute
1000 * there are 1000 milliseconds in a second

答案 2 :(得分:0)

Dude getTime()方法为您提供以毫秒为单位的时间。所以差异就是毫秒然后你试图通过将其除以1000然后分为几分钟,然后除以60然后再分为几小时再分为几天(1天是24小时)。

我希望你明白。

答案 3 :(得分:0)

方法getTime()返回自此Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数,如下所示:

http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Date.html

而且我相信我甚至不必描述其余部分,因为这是唯一可能不清楚的事情;)

答案 4 :(得分:0)

这很直接。

  1. (d2.getTime() - d1.getTime())给你差异号。两个日期之间的毫秒数。

  2. 1000 * 60 * 60 * 24可提供一天内的毫秒数。

  3. 显式强制转换为(int)可为您提供确切的天数。

  4. 只不过是这个。