2013-07-28 6 views
1

Я пытаюсь взять часы, которые я проанализировал с помощью SimpleDateFormat, и определить, находится ли текущее время между двумя наборами часов. В принципе, учитывая часы места, я пытаюсь определить, открыт ли он в наши дни.Определение времени между двумя другими моментами

Я получаю текущее время, выполнив следующие действия:

SimpleDateFormat sdf2 = new SimpleDateFormat("kk:mm"); 
Calendar now = Calendar.getInstance(); 
int hour = now.get(Calendar.HOUR); 
int minute = now.get(Calendar.MINUTE); 
String currentHour = Integer.toString(hour); 
String currentMinute = Integer.toString(minute); 
String timeNow = currentHour + ":" + currentMinute; 
Date timeRightNow = sdf2.parse(timeNow); 

Затем определить, является ли timeRightNow между открывающим и закрывающим раз, я делаю следующее:

if (timeOpen.before(timeRightNow) && timeClose.after(timeRightNow)) { 
    openStatus = "open!"; 
} else { 
    openStatus = "closed."; 
} 

Оба timeOpen и timeClose найдены путем разбора строки, используя sdf2 точно так же, как timeRightNow.

Каждый раз, когда это выполняется, он устанавливает openStatus в "closed." даже когда текущее время находится между временем открытия и закрытия. Может ли кто-нибудь указать мне в правильном направлении, чтобы понять, почему это происходит?

+1

Возможно, у вас проблемы с AM/PM? Прослеживание с помощью отладчика должно выявить источник проблемы. –

+0

Или просто выводя, что это такое и смотрят на них. –

+0

как вы вычисляете timeOpen и timeClose? – Peshal

ответ

1

I изменено Calendar.HOUR до Calendar.HOUR_OF_DAY. Это решило проблему.

+0

Человек! Ты просто спас мне жизнь! :) –

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