Objective-C、ios、またはuipickerviewについては何も言えません...アルゴリズムについて。特定の言語ではない疑似コードを次に示します。
i = 7 // this is i in your example
offset=420 // This is where you could say you want
// to start at 7:00 (420 minutes after midnight)
// you could use any number here obviously.
counter = offset
while (counter<1440+offset){
counter = counter+i
minutes = counter%60
hours = counter/60 // Use integer division
}
剰余は、残りを与えることで毎回あなたの分を与えます..したがって、あなたの例では、分は56 => 63 => 3になります。これはあなたが望むものです.
特定の間隔の分と時間を知りたいだけの場合 (間隔が 0 から 206 になるとします (1 日に 206 の 7 分間隔があるとします)、次のようにします。
minutes = (i*intervalNum) % 60
hours = (i*intervalNum) / 60 // Integer division!
期間内の間隔の数が必要な場合は、次のことができます。
keep a hashmap (again I don't know how objective-c handles these) that maps an hour to a list of the minutes that mark intervals. In your example you could have a hashmap that looks like:
{0 => (0,7,14,21,28,35,42,49,56),
1 => (3,10,17,24,31,38,45,52,59),
2 => (6,13,20,27,34,41,48,55),
...
}
最初のラウンドでこのマップを作成します。2 ~ 3 タイムスロットの間隔の数を取得するには、map[2].length (またはそれに相当するもの) を返すだけです。
明らかに、これはこれを行う多くの方法の 1 つであり、さらに詳細に進むには、より多くのコンテキストが必要になります。
幸運を