我試圖遍歷一系列的工作日,其中每個工作日都映射到一個整數(Sunday = 1, Monday = 2, ..., Saturday = 7)
。週一至週日的子範圍的迭代
該範圍由start and end day
定義。這是罰款一開始和結束的一天是Monday(2) - Thursday(5)
,我可以這樣做:
for(int i = startDay; i <= endDay; i++) { ... }
我有困難時,範圍橫跨結束分裂,一個星期的開始,就像Friday(6) - Monday(2)
。這顯然不適用於上面的循環 - 例如
for(int i = 6; i <= 2; i++) { ... } // wouldn't even execute once.
我可以看到的唯一的解決方案是實現某種循環緩衝區的,我覺得是矯枉過正了這樣一個簡單的問題。我只是被難住了,很可能在這裏丟失了一些明顯的東西。我認爲解決方案可能與模塊化算術有關,但我不太確定。
給定一個範圍,比如'朝九特派= 6和endDay = 3',這不會執行嗎? '朝九特派+(endday指定 - 朝九特派)'= '6 +(3 - 6)'= '3' 結果造成: '的for(int i = 6; I <= 3;我++){ ...}' 哪個不會執行? – Kumalh
現在應該修復。 –
應該是...... 7 - (startDay - endDay);'而不是'... 8 - (startDay - endDay);'?否則它會一直增加一天。 – Kumalh