2014-11-18 1 views
2

Мой вопрос: как сравнить два времени между startTime и endTime,Как сравнить время начала и окончания времени в Android?

Сравнение двух раз.

  1. Время начала
  2. Время окончания.

Я использую TimePickerDialog для выборки времени, и я использую один метод, который передать параметр как долго начальное время и Конечное время, я использую, как это,

//Method: 
boolean isTimeAfter(long startTime, long endTime) { 
    if (endTime < startTime) { 
     return false; 
    } else { 
     return true; 
    } 
} 

String strStartTime = edtStartTime.getText().toString(); 
String strEndTime = edtEndTime.getText().toString(); 

long lStartTime = Long.valueOf(strStartTime); 
long lEndTime = Long.valueOf(strEndTime); 

if (isTimeAfter(lStartTime, lEndTime)) { 

} else { 

} 

Получить Ошибку:

java.lang.NumberFormatException: Invalid long: "10:52" 

Как сравнить два раза. Пожалуйста, предложите мне.

ответ

4

Прежде всего, вы должны преобразовать строку времени, чтобы SimpleDateFormat, как показано ниже:

SimpleDateFormat sdf = new SimpleDateFormat("hh:mm"); 
Date inTime = sdf.parse(strStartTime); 
Date outTime = sdf.parse(strEndTime); 

Затем вызовите ваш метод, как показано ниже:

if (isTimeAfter(inTime, outTime)) { 

} else { 

} 

boolean isTimeAfter(Date startTime, Date endTime) { 
    if (endTime.before(startTime)) { //Same way you can check with after() method also. 
     return false; 
    } else { 
     return true; 
    } 
} 

Также вы можете сравнить, больше & нет стартTime & конецTime.

int dateDelta = inTime.compareTo(outTime); 
switch (dateDelta) { 
    case 0: 
      //startTime and endTime not **Equal** 
    break; 
    case 1: 
      //endTime is **Greater** then startTime 
    break; 
    case -1: 
      //startTime is **Greater** then endTime 
    break; 
} 
+0

Perfect Code !!! –

+0

есть проблема в случае 12AM и 12 PM –

+0

Вы пробовали? Может быть, вам нужно преобразовать время в 24-часовой формат, так что это не создаст проблемы. @HeenaArora –