比较两个时间值并存储在数组中

时间:2012-08-02 18:08:16

标签: java android

我有四个整数

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 个答案:

答案 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)