1

2 つの日付間の日数を計算することは承知しています。

Java、2 つの日付間の日数を計算する

しかし、以下のコードで計算がどのように行われるかを理解できません。特に、以下で強調表示されているもの。

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

この背後にあるロジックを教えてください。

4

5 に答える 5

5

リンクした質問には、Jon Skeet からの回答があります。あなたはそれを考慮する必要があります。コードでは、2 つの日付の差がMillisecondで返されます。1 日に換算すると、次のように計算されます。

(1000       *    60     *  60     *    24));
 millisecond  seconds    minutes    hours in day ==> One day
于 2013-01-03T09:15:55.880 に答える
0

これはかなりまっすぐです。

  1. (d2.getTime()-d1.getTime())は、差異を示しません。2つの日付の間のミリ秒。

  2. 1000 * 60 * 60 * 24は、1日のミリ秒数を示します。

  3. (int)への明示的なキャストは、正確な日数を示します。

これ以上のものはありません。

于 2013-01-03T09:21:25.900 に答える
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() は、この Date オブジェクトによって表される 1970 年 1 月 1 日 00:00:00 GMT からのミリ秒数を返します。

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

そして、これがあなたにとって不明確かもしれない唯一のことなので、残りを説明する必要さえないと思います;)

于 2013-01-03T09:17:07.603 に答える