私は整数フィールドを持っています:
currentYear、currentMonth、currentDay、currentHour、currentMinuteおよびnextYear、nextMonth、nextDay、nextHour、nextMinute。
これらの2つのスポットの差をミリ秒単位で取得するにはどうすればよいですか。Date()オブジェクトを使用する方法を見つけましたが、それらの関数は限定されているように見えるので、少し危険です。
その他の方法で?
グレゴリオ暦を使用して日付を作成し、それ以外の場合と同じように差分を取得します。
GregorianCalendar currentDay=new GregorianCalendar (currentYear,currentMonth,currentDay,currentHour,currentMinute,0);
GregorianCalendar nextDay=new GregorianCalendar (nextYear,nextMonth,nextDay,nextHour,nextMinute,0);
diff_in_ms=nextDay. getTimeInMillis()-currentDay. getTimeInMillis();
とのCalendar
オブジェクトを作成し、それらをlongに変換してから、減算します。例えば:currenDay
nextDay
Calendar currentDate = Calendar.getInstance();
Calendar.set(Calendar.MONTH, currentMonth - 1); // January is 0, Feb is 1, etc.
Calendar.set(Calendar.DATE, currentDay);
// set the year, hour, minute, second, and millisecond
long currentDateInMillis = currentDate.getTimeInMillis();
Calendar nextDate = Calendar.getInstance();
// set the month, date, year, hour, minute, second, and millisecond
long nextDateInMillis = nextDate.getTimeInMillis();
return nextDateInMillis - currentDateInMillis; // this is what you want
クラスの混乱が気に入らない場合はCalendar
、Jodaタイムライブラリをチェックしてください。