2013-08-10 5 views
0

Я хочу проверить, установлено ли заданное время меньше времени календаря (мобильного устройства).
В нем отображаются установленные аварийные сигналы, и если установленное время не более 1,5 часов, отображается сообщение «ruko ruko». Если оба условия ложны, то они перейдут в другое условие.
Это не дало ожидаемых результатов. Вот мой код:Преобразование времени в миллисекунду

GregorianCalendar mcalender=new GregorianCalendar(); 
mcalender.set(2013, 7, 17, 13, 0); 

if(mcalender.getTimeInMillis()<=cal.getTimeInMillis()){ 
    Toast.makeText(getBaseContext(), "sets ", Toast.LENGTH_SHORT).show(); 
} 
else if(mcalender.getTimeInMillis()+5400000<=cal.getTimeInMillis()){ 
    Toast.makeText(mContext, "ruko ruko", Toast.LENGTH_SHORT).show(); 
} 
else{ 
    Toast.makeText(getBaseContext(), "Time not gone ", Toast.LENGTH_SHORT).show(); 
} 

ответ

1

Проблема в том, что сначала проверяется mcalender.getTimeInMillis(). Например, когда вы устанавливаете будильник на 5:30, в 4:30 первая часть будет действительной, так что раздел else if полностью пропущен. Просто надо изменить порядок и что будет делать :)

if(mcalender.getTimeInMillis()+5400000<=cal.getTimeInMillis()){ 
     //If still have more than 1.5 hours to go (i.e. 2 hours left etc) 
     Toast.makeText(mContext, "ruko ruko", Toast.LENGTH_SHORT).show(); 
    } 
    else if(mcalender.getTimeInMillis()<=cal.getTimeInMillis()){ 
     //Not more than 1.5 hours, but still not time up yet. 
     Toast.makeText(getBaseContext(), "sets ", Toast.LENGTH_SHORT).show(); 
    } 
    else{ 
     //Time is up. Run action. 
     Toast.makeText(getBaseContext(), "Time not gone ", Toast.LENGTH_SHORT).show(); 
    } 
+0

@ Sijie-я просто использую этот код для установки для тревоги и мой prblm, что если установить сигнал тревоги в течение 1,5 часов и время сигнала тревоги 1. – FarhaSameer786

+0

Мне жаль, что я все еще не понимаю вашу проблему - вы устанавливаете будильник на 1,5 часа, но приложение говорит, что вы установили только 1 час? Если это так, то эта часть кода не проблема, похоже. – sijie123

+0

@ sijie-actully my prblm заключается в том, что если я установил будильник в 16:00, а время его окончания 5,30 означает 1,5 часа. Если я хочу проверить до 4 часов, это покажет, что я настроен на будильник, и если я хочу проверить между 4 и 5:30, это покажет мне время не закончить ... и в противном случае, если время закончится показать и запустить еще условие PLS помочь мне – FarhaSameer786

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