2012-08-02 68 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