2017-12-05 11 views
0

안녕 시간 범위를 비교하려고 할 때 내 요구 사항은 내가 시간 피커 대화 상자에서 시간을 선택하면이 주어진 시간 범위 아래에 있어야합니다.시간 범위를 비교하는 방법은 무엇입니까?

시작 시간 : 06 : 00 종료 시간 : 23 : 00 시간 선택기 대화 상자에서 선택한 시간 : 12 : 적합하지 타이밍 위 (23)

몇 가지 중 하나가 나를 도울 수있는 코드 아래에 제발

 String pattern = "hh:mm";            
    SimpleDateFormat sdf = new SimpleDateFormat(pattern); 
    Date date1 = sdf.parse(startTime); 
    Date date2 = sdf.parse(endTime); 
    Date date3 = sdf.parse(selectedTime); 
    if (((date3.after(date1) || date3.equals(date1)) && (date3.before(date2) || date3.equals(date2)))) {   


    } 
    else { 
      Toast.makeText(context, "Pickup time should be open and close timings", Toast.LENGTH_SHORT).show();           
     } 

답변

1

아래 코드를 사용할 수 있습니다.

String pattern = "HH:mm"; 
    SimpleDateFormat sdf = new SimpleDateFormat(pattern); 
    try { 
     Date date1 = sdf.parse(startTime); 
     Date date2 = sdf.parse(endTime); 
     Date date3 = sdf.parse(selectedTime); 
     if (date3.compareTo(date1) >= 0 && date3.compareTo(date2) <= 0) { 
      // Do your stuff 
     } else { 
      // Wrong time 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

시간은 /시 (12)

오전에 시간을 나타냅니다

H은 하루에 시간을 나타냅니다 (0-23)

귀하의 날짜가 24 시간 메이트에서 당신 때문에 h 대신을 사용해야합니다.

+0

시도해보고 결과를 알려주십시오. – Krish

+0

업데이트 된 답변을 사용하십시오. 그것도 평등 한 조건을 다룰 것입니다. – ADM

+0

감사합니다. – Krish

1

compareTo()을 사용해야합니다. 두 물체가 서로 동일한 경우에 현재의 오브젝트보다 다른 물체와 0이면 현재의 오브젝트는 다른 오브젝트 양수보다 작 으면

compareTo 메소드는 음수를 반환해야한다.

코드 참조

if (date1.compareTo(date2) < 0) 
{ 
Log.d("RESULT","date1 older than date2"); 
} 
else 
{ 
Log.d("RESULT","date2 older than date1"); 
} 

참고 TIME format 완벽 당신 있는지 확인합니다.

+1

고마워요. – Krish

+0

@Krish 듣기 좋다. 앞으로 나아가 라. –