0

保存された時間と現在の時間の差を分単位で計算したい。これが私が試した方法です。

public static boolean on_pause() {
    current_date = java.text.DateFormat.getDateTimeInstance().format(
            Calendar.getInstance().getTime());
    long diffInMillisec = current_date.getTime() - saved_date.getTime();
    long diffInSec = TimeUnit.MILLISECONDS.toMinutes(diffInMillisec);
    difference = diffInSec % 60;
    diffInSec /= 60;

    if (difference <= 3) {
        return true;
    } else
        return false;

}

public static void on_resume() {

    saved_date = java.text.DateFormat.getDateTimeInstance().format(
            Calendar.getInstance().getTime());
}

エラーを示す行 current_date.getTime() および saved_date.getTime() (メソッド getTime() は String 型に対して未定義です)。私を助けてください。

4

3 に答える 3

0

この行:

current_date = java.text.DateFormat.getDateTimeInstance().format(
        Calendar.getInstance().getTime());

現在の時刻 (文字列) を返します。そのため、試してみるcurrent_date.getTime()と、文字列から時間を取得しようとしています。これを行います(テストされていませんが、動作するはずです):

Calendar current_date  = Calendar.getInstance();

次に、current_date.getTime() を呼び出して、答えを int/long/double に解析する必要があります。saved_date についても同じことを行います。

こちらもチェックしてください: http://developer.android.com/reference/java/util/Calendar.html

試して、さらに助けを求めて書いてください。

于 2013-09-02T19:27:05.573 に答える
0

または、これを行うことができます

public static boolean on_pause() {
    return System.currentTimeMillis() - saved_date > 3 * 60 * 1000;
}

public static void on_resume() {
    saved_date = System.currentTimeMillis();
}

これは180秒の差です。分だけを比較すると、239 秒後になる可能性がありますが、秒数を無視するため、これが 3 分を超えているとは見なされません。

于 2013-09-02T19:30:25.673 に答える