2012-08-02 61 views
0

存儲我有四個整數比較兩個時間值和陣列中的

int minute; int houre; 
int endHour; int endMin; 

假設前兩個是houre = 6 -- minute = 40 so time is 6:40 二是endHour = 22 endMin = 40 so time is 22:40

現在我想添加10分鐘,高達添加所有可能的時間值22:40在一個數組中。以下是我使用

while (houre <= endHour && minute <= endMin) 
      { 
       if (minute + 10 >= 60) 
        houre += 1; 

       minute = (minute + 10) % 60; 
       Datee dat = new Datee(); 
       dat.startHour = houre; 
       dat.startMin = minute; 
       arrayOfTime.add(dat); 
      } 

代碼中的錯誤是在minute <= endMin ...它到達小時才能結束於這種情況。誰能給我一個解決方案。我不知道爲什麼我解決不了這個小問題

問候

回答

3

拇指的第一條規則,單位轉換成標準單位:

其實,一個更好的方式來寫,這可能是。

轉換開始和結束(小時/分鐘)爲min

start_min = starthour * 60 + startmin; 
end_min = endhour * 60 + endmin; 

while (start_min < end_min) { 
    start_min += 10; 
    int hour = start_min/60; 
    int min = star_min % 60; 
} 
+0

如何將我提取小時和分鐘? – 2012-08-02 18:50:14

+0

int hour = start_min/60; int min = star_min%60; – 2012-08-02 19:06:47

3
while(!(hour > endHour && minute > endMin)) 

您當前的代碼繼續while循環,直到小時或分鐘比結束時間大。你不想退出,直到他們兩個都高於結束時間。

這就是說,普拉卡什的代碼很容易包住你的頭;你可能應該去那個。與這種情況工作時

while(hour <= endHour || minute <= endMin) 
0

該條件應是

while(((houre == endHour) && minute <= endMin) || houre < endHour) 
+0

這是不必要的。閱讀他的代碼。 – 2012-08-02 18:15:22