В моих настройках есть несколько строк, которые представляют время начала и время окончания.
Я написал эту функцию, чтобы определить, находится ли текущее время в пределах времени начала и окончания. Формат строки даты - «ЧЧ: мм». Функция берет строки из настроек.
Я уверен, что мне не хватает некоторого кода для сравнения, потому что мой анализ возвращает что-то вроде этого:
Чт, 29 сентября 12:24:33 ПО ВОСТОЧНОМУ ВРЕМЕНИ 2011
Но все, что мне нужно, это получить:
12: 24
Вот функция. Можете ли вы помочь мне исправить код?
Спасибо.
Действительно,
Имад
public static boolean currentTimeIsWithinStartAndEnd(String startTime,
String endTime) {
String pattern = "HH:mm";
SimpleDateFormat sdf = new SimpleDateFormat(pattern);
boolean booleanValueToReturn = false;
try {
Date startTimeToCompare = sdf.parse(startTime);
Date endTimeToCompare = sdf.parse(endTime);
/*
* These are for the current time in date format.
*/
Date currentTime = new Date(System.currentTimeMillis());
Log.w("Emad", "Current Time: " + currentTime + " Start Time is: "
+ startTimeToCompare + " End Time is : "
+ endTimeToCompare);
/*
* Check if current time is equal or greater than the start time.
*/
if (currentTime.compareTo(startTimeToCompare) == 0
|| currentTime.compareTo(startTimeToCompare) == 1) {
booleanValueToReturn = true;
/*
* Now check if the current time is equal or less than the end
* time.
*/
if (currentTime.compareTo(endTimeToCompare) == 0
|| currentTime.compareTo(endTimeToCompare) == -1) {
booleanValueToReturn = true;
} else {
booleanValueToReturn = false;
}
} else {
booleanValueToReturn = false;
}
} catch (java.text.ParseException e) {
}
return booleanValueToReturn;