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 回答
0

有一种简单的方法可以获取实际的日期/时间

采用

Time current_date  = new Time();
current_date.setToNow();

Time saved_date = = new Time();
saved_date.setToNow();

其余的代码对我来说看起来不错

于 2013-09-02T19:30:56.170 回答