2つの間の年数を取得する方法はjava.util.Date
?
注:使用のみjava.util.Date
どのくらい正確である必要がありますか? おおよそで十分であれば、私はそうします
long msDiff = date1.getTime() - date2.getTime();
int yearDiff = (int)(msDiff / 1000 / 60 / 60 / 24 / 365.25);
本当に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を使用してください。
各 Date オブジェクトに対して getTime メソッドを使用し、減算を行います。結果を年に変換します。
この質問は GWT でタグ付けされているため、GWT アプリケーションで日付計算を行おうとしていると思います。GWT のエミュレーション ライブラリは非推奨の関数 Date.getYear() を実装しています。この場合、date2.getYear() - date1.getYear() を実行するだけです。
非推奨の関数を使用することは最善ではありませんが、GWT 開発の世界では一般的な方法のようです。