Добавьте определенное количество времени к текущему времени и запишите его - PullRequest
10 голосов
/ 30 августа 2011

Я использую:

Calendar c = Calendar.getInstance();

с которым я получаю текущее время,

String sHour = c.get(Calendar.HOUR_OF_DAY)
String sMinute = c.get(Calendar.MINUTE)

Мне нужно добавить, например, 1 час 10 минут - сохранить егопеременная, а также Substract, скажем, 10 минут и сохранить его как другую переменную.(Мне нужно использовать их оба в TextView)

Я видел метод add(); в документации Android, но не могу понять, как он работает.Спасибо

Ответы [ 2 ]

29 голосов
/ 30 августа 2011

Код, который вы разместили, не будет компилироваться, так как Calendar.get() не возвращает строку. Следует также отметить, что календарь является изменяемым - это не то, что каждый вызов add возвращает новый календарь. Поэтому вам нужно будет создавать новый экземпляр каждый раз, когда вы хотите отдельную переменную для другого значения. Например:

Calendar now = Calendar.getInstance();

Calendar tmp = (Calendar) now.clone();
tmp.add(Calendar.HOUR_OF_DAY, 1);
tmp.add(Calendar.MINUTE, 10);
Calendar nowPlus70Minutes = tmp;

tmp = (Calendar) now.clone();
tmp.add(Calendar.MINUTE, -10);
Calendar nowMinus10Minutes = tmp;

Если это вообще возможно, я бы настоятельно рекомендовал бы использовать Joda Time вместо Calendar / Date - это far улучшенный API. Однако вы можете захотеть урезать часовые пояса, включенные в него, чтобы быстрее начать работу и меньше накладных расходов в вашем apk.

5 голосов
/ 30 августа 2011

Вы можете просто позвонить System.currentTimeMillis() + INTERVAL.

Где INTERVAL - интервал в миллисекундах (например:

public static final long INTERVAL = 1000 * 60 * 60 * 24; // 1 day
...