特定の曜日と時間にレポートを送信する Java Swing アプリケーションを開発しています。たとえば、レポートの時刻は水曜日の 09:00:00 です。レポート時刻を使用して、現在の日付と時刻の時差を計算しようとしています。例えば:
DayTime1 = "水 09:00:00"
DayTime2 = "火 13:00:00"
これら 2 つの値の時間差を計算するにはどうすればよいですか? 私は自分で試しましたが、結果に近づくことさえできませんでした。
String を Date オブジェクトに作成し、2 つのインスタンス間の期間を計算する必要があります。
DateFormat dateformat = new SimpleDateFormat("EEE HH:mm:ss");
Date date1 = dateformat.parse(dayTime1);
Date date2 = dateformat.parse(dayTime2);
getDuration(date1, date2, Calendar.MINUTE);
public static long getDuration(Date returnTime, Date leaveTime, int scale) {
long durationInMillis = returnTime.getTime() - leaveTime.getTime();
switch (scale) {
case Calendar.MINUTE:
return durationInMillis / ONE_MINUTE_IN_MILLIS;
case Calendar.MILLISECOND:
return durationInMillis;
case Calendar.SECOND:
return durationInMillis / ONE_SECOND_IN_MILLIS;
case Calendar.HOUR:
return durationInMillis / ONE_HOUR_IN_MILLIS;
case Calendar.DAY_OF_YEAR:
case Calendar.DATE:
return durationInMillis / ONE_DAY_IN_MILLIS;
}
throw new IllegalArgumentException("invalid scale specified");
}