我有四个整数
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
...它会在达到更长时间之前在此条件下结束。有谁能给我一个解决方案。我不知道为什么我无法解决这个小问题
最好的问候
答案 0 :(得分:3)
while( !(hour > endHour && minute > endMin) )
您当前的代码会继续while循环,直到小时或分钟大于结束时间。你不想退出,直到它们都高于结束时间。
也就是说,普拉卡什的代码更容易包裹起来;你可能应该这样做。
实际上,写这个的更好方法可能是:
while(hour <= endHour || minute <= endMin)
答案 1 :(得分: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;
}
答案 2 :(得分:0)
条件应为
while(((houre == endHour) && minute <= endMin) || houre < endHour)