0

特定の曜日と時間にレポートを送信する Java Swing アプリケーションを開発しています。たとえば、レポートの時刻は水曜日の 09:00:00 です。レポート時刻を使用して、現在の日付と時刻の時差を計算しようとしています。例えば:

DayTime1 = "水 09:00:00"
DayTime2 = "火 13:00:00"

これら 2 つの値の時間差を計算するにはどうすればよいですか? 私は自分で試しましたが、結果に近づくことさえできませんでした。

4

1 に答える 1

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");
    }
于 2012-12-08T07:36:06.173 に答える