0

私は4つの整数を持っています

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

最初の 2 つがhoure = 6 -- minute = 40 so time is 6:40 2 番目であるとします。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 に答える