6

私は整数フィールドを持っています:

currentYear、currentMonth、currentDay、currentHour、currentMinuteおよびnextYear、nextMonth、nextDay、nextHour、nextMinute。

これらの2つのスポットの差をミリ秒単位で取得するにはどうすればよいですか。Date()オブジェクトを使用する方法を見つけましたが、それらの関数は限定されているように見えるので、少し危険です。

その他の方法で?

4

2 に答える 2

6

グレゴリオ暦を使用して日付を作成し、それ以外の場合と同じように差分を取得します。

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();
于 2012-11-18T02:20:01.753 に答える
3

とのCalendarオブジェクトを作成し、それらをlongに変換してから、減算します。例えば:currenDaynextDay

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タイムライブラリをチェックしてください。

于 2012-11-18T02:42:25.417 に答える