1

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

Java,计算两个日期之间的天数

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

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

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

4

5 回答 5

5

您链接的问题有Jon Skeet 的答案。你应该考虑到这一点。对于您的代码,两个日期之间的差异以毫秒返回。要转换为一天,计算方法是:

(1000       *    60     *  60     *    24));
 millisecond  seconds    minutes    hours in day ==> One day
于 2013-01-03T09:15:55.880 回答
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
于 2013-01-03T09:16:11.447 回答
0

DudegetTime()方法为您提供以毫秒为单位的时间。所以差异只有毫秒,然后您尝试通过将其除以 1000 将其转换为秒,然后通过将其除以 60 转换为分钟,然后转换为小时,然后再转换为天(1 天是 24 小时)。

我希望你能明白。

于 2013-01-03T09:16:34.367 回答
0

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

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

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

于 2013-01-03T09:17:07.603 回答
0

这很直接。

  1. (d2.getTime() - d1.getTime()) 给你区别没有。两个日期之间的毫秒数。

  2. 1000 * 60 * 60 * 24 为您提供一天中的毫秒数。

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

仅此而已。

于 2013-01-03T09:21:25.900 回答