long 変数 = 《Calendar》.getTimeInMillis();これで、そのCalendarインスタンスの日時をエポックによるlong値として取り出すことができます。2つの日時からそれぞれこの値を取り出し、その差を計算すれば、2つの日時の間がどれだけあるかをミリ秒で換算した値が得られます。ということは、「何日あるか」を計算したければ、この値を1日のミリ秒数(1000×60×60×24)で割ればいいわけですね。
《Calendar》.setTimeInMillis( long値 );2つの日時の差を計算し、その結果を引数にしてsetTimeInMillisすれば、指定のミリ秒数が経過した時点でのCalendarインスタンスに設定できます。ここからgetで年月日の値を取り出していけばいいのです。ただし、エポック値は1970年1月1日がゼロになっていますから、取り出した年の値から1970を引く必要があります。
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
public static void main(String[] args) {
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal2.set(2001,0,1);
long n = cal1.getTimeInMillis() - cal2.getTimeInMillis();
Calendar cal3 = Calendar.getInstance();
cal3.setTimeInMillis(n);
int y = cal3.get(Calendar.YEAR) - 1970;
int m = cal3.get(Calendar.MONTH) + 1;
int d = cal3.get(Calendar.DATE);
System.out.println(y + "年" + m + "ヶ月と" + d + "日あります。");
}
| << 前へ | 次へ >> |