- 2012-12-09 (日) 14:58
- Java
ある日から別の日までの経過日数の取得方法を紹介します。
まず、2つの日付をエポック(1970年1月1日 00:00:00.000 GMT)からの経過ミリ秒に変換し、その差分を求めます。
次に、算出した差分値を日単位に変換してやることで経過日数を取得することができます。
エポックからの経過ミリ秒は Date#getTime()、Calendar#getTimeInMillis() などで取得できます。
サンプルコード
//==== 1日のミリ秒換算値 ====//
static final int MILLIS_OF_DAY = 1000 * 60 * 60 * 24;
/**
* 呼び出し元の適当なメソッド
*/
void hoge() {
//==== 2つの日付を設定 ====//
Calendar calendarNow = Calendar.getInstance();
Calendar calendarPast = Calendar.getInstance();
calendarPast.set(2000, 1, 1, 0, 0, 0);
//==== 経過日数を取得 ====//
int diffDays = getDiffDays(calendarNow, calendarPast);
}
/**
* 経過日数を取得する。
*/
long getDiffDays(Calendar calendar1, Calendar calendar2) {
//==== ミリ秒単位での差分算出 ====//
long diffTime = calendar1.getTimeInMillis() - calendar2.getTimeInMillis();
//==== 日単位に変換 ====//
long diffDays = diffTime / MILLIS_OF_DAY;
return diffDays;
}
関連があると思われる記事:
- Newer: [Android] Handler内部クラス実装時の注意点
- Older: [Windows] サービス削除
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://gacken.com/wp/program/java/2177/trackback/
- Listed below are links to weblogs that reference
- [Java] 経過日数の取得 from ミライニトドケ