1

我正在报警,获取当前时间如下:

public String getAlarmTimeStringFive2db() {

        String timef2db = "";
        if (alarmTime.get(Calendar.HOUR_OF_DAY) <= 9)
            timef2db += "0";
        timef2db += String.valueOf(alarmTime.get(Calendar.HOUR_OF_DAY));
        timef2db += ":";

        if (alarmTime.get(Calendar.MINUTE) <= 9)
            timef2db += "0";
        timef2db += String.valueOf(alarmTime.get(Calendar.MINUTE));

        return timef2db;

    }

...

public static long create(Alarm alarm) {
        ContentValues cv = new ContentValues();
        cv.put(COLUMN_ALARM_ACTIVE, alarm.getAlarmActive());
        cv.put(COLUMN_ALARM_TIME, alarm.getAlarmTimeStringFive2db());

...

public void setAlarmTime(String alarmTime) {

    String[] timePieces = alarmTime.split(":");

    Calendar newAlarmTime = Calendar.getInstance();
    newAlarmTime.set(Calendar.HOUR_OF_DAY,
            Integer.parseInt(timePieces[0]));
    newAlarmTime.set(Calendar.MINUTE, Integer.parseInt(timePieces[1]));
    newAlarmTime.set(Calendar.SECOND, 0);
    setAlarmTime(newAlarmTime);     
}

...

这很好用,例如返回 5:35 ... 好吧。

我的问题是我想总是按时减去 5 分钟。如果时间是 5:35,我希望闹钟时间从 5:30 开始。

我的问题是我不知道如何减去这 5 分钟。我试过

Calendar.MINUTE, Integer.parseInt(timePieces[1],5)

日历.分钟,-5)

...但没有任何效果

我阅读了此链接 Set Alarm To Alert 5 Minutes Before a certian Time .. 但我无法将其应用于我的代码

谁能告诉我我的闹钟减去了 5 分钟?

提前致谢

问候

4

1 回答 1

3

我不确定您是否以正确的方式使用 Calendar 实例,但这里有一个示例显示使用 add -5 到当前日历时时间会发生变化

Calendar cal = Calendar.getInstance();
    System.out.println("Before :" +  cal.get(Calendar.MINUTE));
    cal.add(Calendar.MINUTE, -5);
    System.out.println("After :" + cal.get(Calendar.MINUTE));

结果将是这样的:

Before :37 
After :32
于 2013-09-05T21:35:17.757 回答