4

2つの間の年数を取得する方法はjava.util.Date?

注:使用のみjava.util.Date

4

4 に答える 4

9

どのくらい正確である必要がありますか? おおよそで十分であれば、私はそうします

long msDiff = date1.getTime() - date2.getTime();
int yearDiff = (int)(msDiff / 1000 / 60 / 60 / 24 / 365.25);
于 2008-11-14T12:38:58.683 に答える
1

本当にjava.util.Dateを使用する必要がありますか??

この制約を緩和し、Joda Time - Java 日付と時刻 APIの使用を許可する場合、次のようにタスクを実行できます。

import org.joda.time.DateTime;
import org.joda.time.Period;

import static java.lang.System.out;

public class App {
  public static void main(String[] args) {
    final DateTime now = new DateTime();
    out.println(new Period(now.minusYears(2), now).getYears());
    out.println(new Period(now.minusYears(2).plusHours(1), now).getYears());
  }
}

出力結果は次のとおりです。

2
1

Joda Timeを使用できない場合は、 java.util.Calendarを使用してください。

于 2008-11-25T14:07:30.793 に答える
0

各 Date オブジェクトに対して getTime メソッドを使用し、減算を行います。結果を年に変換します。

于 2008-11-14T12:41:19.350 に答える
0

この質問は GWT でタグ付けされているため、GWT アプリケーションで日付計算を行おうとしていると思います。GWT のエミュレーション ライブラリは非推奨の関数 Date.getYear() を実装しています。この場合、date2.getYear() - date1.getYear() を実行するだけです。

非推奨の関数を使用することは最善ではありませんが、GWT 開発の世界では一般的な方法のようです。

于 2009-06-19T00:10:25.227 に答える