2015-03-10 2 views
0

У меня есть TimePicker в андроиде, чтобы установить час для сигнализации (AlarmManager) проблема его я получил этоTimePicker Android Issue

public void onTimeSet(TimePicker view, int hourOfDay, int minute) 
{ // Some logical code here } 

так в моей тревоге пользователь может установить, сколько времени до того, как уведомить должны начало, 5 минут, 10 минут или 30. так

Как я могу получить hourOfDay и Minute, чтобы вычитать время до того, как будильник должен уведомить?

Пример:

User set alarm: 13:30 and 10 Minutes before, i need to get 13:20. 

Another example: user sets 2:5AM and 30 minutes before, i need to get 1:35AM 
+0

Вы видели поля в [SimpleDateFormat] (http://docs.oracle.com/javase/7/docs/api /java/text/SimpleDateFormat.html#fields_inherited_from_class_java.text.DateFormat) –

+0

Нет, я собираюсь проверить thx! – Junshi

ответ

0

первую очередь создать:

Calendar cal = Calendar.getInstance(); 
cal.set(year, month, day, hourOfDay, minute); 
long exact_alarm_time = cal.getTimeInMillis(); 

// if user want to set before 10 minutes 
long before = 10*60*1000; 

// now subtract the before time from current time 
long newTime = exact_alarm_time - before; 

Calendar cNew = Calendar.getInstance(); 
cal.setTimeInMillis(newTime); 
int year = cal.get(Calendar.YEAR); 
int month = cal.get(Calendar.MONTH); 
int date = cal.get(Calendar.DATE); 
int min = cal.get(Calendar.MINUTE); 
int hour = cal.get(Calendar.HOUR); 

// now set alarm for the new time 
+0

Просто прочитайте один раз [Почему экземпляры календаря особенно дороги для создания] (http://stackoverflow.com/q/28704832/3143670) и [здесь] (http://cephas.net/blog/2006/02/25/ the-cost-of-calendar-object-creation /) –

+0

эй спасибо за этот код, я собираюсь попробовать: D – Junshi

Смежные вопросы