如果重復周期是 “只有一次” 或者 “每天”,算法很好寫,只要計算 當前時間 與 給定時間 的時間差就可以,如果 當前時間 < 給定時間,加上一天就ok!
現在問題是:假設 我 自定義了一個重復周期,設定 每周三,每周五7:30 AM的鬧鈴。
那麼如果今天是在周三設定的時間之前,那麼要計算與周三的時間差。
如果是周三設定的時間之後,周五設定的時間之前,那麼要計算與周五的時間差。 如果是周五設定的時間之後,又要計算與周三的時間差。
僅僅重復了兩天,如果重復天數達到四五天,邏輯感覺有點復雜。
想問問各位大神有沒有好的解決算法。
周一的鬧鐘=0*24 + 設定時間
周二的鬧鐘=1*24 + 設定時間
......
周日的鬧鐘=6*24 + 設定時間
當前時間= (當天是周幾-1)+當前時間
然後計算減法找到最小正數即可。
特例是要單獨考慮今天是周日的情況。