那我建議你以一個星期(7天)為一個單位..
作為第一層loop
而且以倍數性增長
7, 14, 21, 28這樣..
然後放入一個inner loop...
1-7
8-14
15-21
依此類推
只要抽出檢查發現有一天有假日就符合用break跳出inner loop...
不要乖乖真的跑loop到31次..
那不是一個好作法..
最簡單的理由就是有可能每一次的inner loop都跑完嗎?...
如果每次都跑完, 這甚麼鳥公司啊...
這出勤已經不是可以用血汗來形容了....

...
違反勞基法, 要向勞檢單位檢舉...

...
你要適切的符合真實世界情況...
好吧!.. 有人會覺得我機車...
小弟就是不想跑完那31次loop拉..>o<""
當你掌握了這樣的算法..
你再增加一個類似event_args之類的物件, 目的類似context..
要用他做紀錄..
為的就是要快速計算你後面的三個條件...