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……它在达到更多小时之前在这种情况下结束。谁能给我一个解决方案。我不知道为什么我不能解决这个小问题

最好的祝福

4

3 回答 3

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

您当前的代码继续 while 循环,直到小时或分钟大于结束时间。您不想退出,直到它们都高于结束时间。

也就是说,Prakash 的代码更容易理解。你可能应该这样做。

实际上,更好的写法可能是:

while(hour <= endHour || minute <= endMin)
于 2012-08-02T18:12:52.150 回答
3

处理这种情况时的第一条经验法则是将单位转换为标准单位。

将开始和结束(小时/分钟)都转换为分钟

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;
}
于 2012-08-02T18:13:31.850 回答
0

条件应该是

while(((houre == endHour) && minute <= endMin) || houre < endHour)
于 2012-08-02T18:14:26.407 回答