我知道计算两个日期之间的天数。
Java, Calculate the number of days between two dates
但我无法理解如何在下面的代码中进行计算。特别是下面突出显示的那个。
return (int)( (d2.getTime() - d1.getTime()) / (
1000*
60*
60*
24));
请让我知道这背后的逻辑。
你联系的问题有一个answer from Jon Skeet。你应该考虑这一点。对于您的代码,两个日期之间的差异以毫秒为单位返回。要转换为一天,计算结果为:
(1000 * 60 * 60 * 24));
millisecond seconds minutes hours in day ==> One day
时间表示为毫秒,因此您有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
Dude getTime()
方法给你时间,以毫秒为单位。所以差异就是毫秒,然后你试图通过将其除以1000然后分为几分钟,然后除以60然后分为几小时再分为几天(1天是24小时)。
我希望你明白。
方法getTime()返回自此Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数,如下所示:
http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Date.html
而且我相信我甚至不必描述其余部分,因为这是唯一可能不清楚的事情;)
这很简单。
没有比这更好的了。