以下のプログラムは指定した日時から経過日を算出するプログラムですが、
実行するとマイナス値になる上に、値が正しくありません。
出力される期待値としては、現在は13日なので3ですが、
-27と出力されます。
java
1Calendar cal1 = Calendar.getInstance(); 2cal1.set(2015, 12, 10, 6, 0, 0); 3Date datePast = cal1.getTime(); 4Calendar cal2 = Calendar.getInstance(); 5Date dateNow = cal2.getTime(); 6 7long dateTimePast = datePast.getTime(); 8long dateTimeNow = dateNow.getTime(); 9 10long diff = dateTimeNow - dateTimePast; 11System.out.print(String.valueOf(diff / (1000 * 60 * 60 * 24)) );
テストとして以下のようにsetを使い手打ちで現在時刻をセットすると、
無事に3と出力してくれます。
java
1Calendar cal1 = Calendar.getInstance(); 2cal1.set(2015, 12, 10, 6, 0, 0); 3Date datePast = cal1.getTime(); 4Calendar cal2 = Calendar.getInstance(); 5cal2.set(2015, 12, 13, 6, 5, 31); 6Date dateNow = cal2.getTime(); 7 8long dateTimePast = datePast.getTime(); 9long dateTimeNow = dateNow.getTime(); 10 11long diff = dateTimeNow - dateTimePast; 12System.out.print(String.valueOf(diff / (1000 * 60 * 60 * 24)) );
悩んでいても何故なのか検討がつかないので、お聞きいたしました。
よろしくお願いいたします。
また最終的な目的でもあるので、できればアドバイスを頂きたいのですが
「2015-12-12 06:05:31」のような日付文字列で現在時間を取得していた場合に、
上記と同じようなプロセスで経過日数を算出するには日付文字列をlong型に変換する良い方法を教えて下さい。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。