2012-10-09 135 views
0

如果當前時間爲18,則此邏輯不起作用。 此處開始時間爲22(晚上10點)和結束時間06(早上6點) 在此先感謝。我的時間在開始時間和結束時間之間

int hour = currentTime.get(Calendar.HOUR_OF_DAY); 

if (hour > 22) { 
     if (hour > 06) { 
      return true; 

     } 
    } 

    if (hour < 22) { 
     if (hour < 06) { 
      return true; 
     } 
    } 

    if (hour == 00) { 
     return true; 
    } 
    return false; 
+0

你期望它做什麼? – Rajesh

+0

我有一個名爲NightMode的函數,我將設置開始和結束時間。所以在那段時間所有連接都會打開,所以需要布爾值來檢查當前時間是在開始和結束之間。謝謝Rajesh對於你的回覆。 – Ashraf

回答

1

你的邏輯是遠遠侷限於特定的情況下,但你需要:

if (endHour < startHour) { // the end is on the next day 
    if (hour > startHour || hour < endHour) { 
     return HOUR_IS_IN_RANGE; 
    } 
} 
else { // end hour is on the same day as start shour 
    if (hour >startHour && hour < endHour) { 
     return HOUR_IS_IN_RANGE; 
    } 
} 
return HOUR_NOT_IN_RANGE; 

你也應該考慮> =/< =而不是隻>和<。

+0

謝謝約翰,這是我所期望的,像魔術一樣工作。 – Ashraf

相關問題