2012-01-10 10 views
2

私は次のようなアドバイスを発見した:アカウントの日の節約シフトを取って日付間の日数を計算するには?

Calendar calendar1 = Calendar.getInstance(); 
Calendar calendar2 = Calendar.getInstance(); 
calendar1.set(2007, 01, 10); 
calendar2.set(2007, 07, 01); 
long milliseconds1 = calendar1.getTimeInMillis(); 
long milliseconds2 = calendar2.getTimeInMillis(); 
long diff = milliseconds2 - milliseconds1; 
long diffSeconds = diff/1000; 
long diffMinutes = diff/(60 * 1000); 
long diffHours = diff/(60 * 60 * 1000); 
long diffDays = diff/(24 * 60 * 60 * 1000); 

しかし、夏に冬から時間を変更するときに1時間の時差があります。これを計算する一般的な方法はありますか?ありがとう。

+0

また、うるう秒、うるう年などにも注意してください。 – user710818

答えて

2

joda-timeライブラリを使用することを検討してください。これは、より便利な日付時刻インタフェースを提供します。スタンダールカレンダーを使用するためとしてDays.daysBetween(startInstant, endInstant).getDays()

- 私は、Calendar.get(Calendar.DAY_OF_YEAR)を使用して、その後、より良い代替手段を検討することはできません - この意志はあなたの違いを取得する機能を提供します:たとえば、あなたの質問は、このようjsut解決され、 1カレンダー年の日数で表します。このメソッドを数年にわたって普及させるには、開始時から終了時までのすべての中間年をとって反復するだけで、Calendar.getActualMaximum(DAY_OF_YEAR)を加算することをお勧めします。あまり便利ではありませんが、...

関連する問題