時間間隔判斷思路

2021-06-26 19:27:37 字數 1247 閱讀 1757

問題:很多時候需要和時間和時間間隔 進行判斷,比如說兩個時間範圍內的 天\周\月\季\年數,當然,通常來說比較有疑問的是 周和季度的判斷;

現象:由於給出的時間不一定是整數周(季度)開始的臨界點,所以就出現了週數,季度數 結果的偏差;

假設給出的時間段為 timestart, timeend,以週為例子

當然首先需要明確自己的需求,到底是timestart到下乙個周的這段時間 沒有構成一周(即,不滿7天)這種算不算一周? 至於結束向前不滿一周的情況 暫時不要考慮。。

明確了之後,接著走,,

那麼就可以明確了這種情況 :  給出 14天,星期的分布是   : 3天  7天 4天 。

如果 籠統的用  天數/7 = 間隔週數  2 ,肯定有點片面了;

如果 開始不滿一周 算的話,那麼  是2;

如果 開始不滿一周不算 ,那麼 答案是1;

給出 14天,星期的分布是   : 3天  7天 3天 。

如果 籠統的用  天數/7 = 間隔週數  1

如果 開始不滿一周 算的話,那麼  是2;

如果 開始不滿一周不算 ,那麼 答案是1;

以下開始建模。。。。。

對比上面 的話估計就知道問題的所在了,就是需要確定timestart向前一周,這段時間是否是一周 把它先確定了;通過轉換日期可以知道 這一天處於一周的第幾天,當然了,需要考慮中國和其他國家星期開始的位置不一樣,中國預設的是星期一為第一天,而西方國建預設是週日為星期開始的第一天;

在此假設 從星期天 開始,用 0 -6 ,便是一周;這樣的話,如果是以星期一作為一周的開始的話 那麼這個偏移值 pos = 1;

那麼假設timeend - timestart 得到的天數 days;

假設timestart距離下一周的天數為 n;(n值 =( 7 -  當前日期所在星期數 +  pos)% 7  )

所以間隔週數 weekinterval = (days - n) / 7   + (0或者1) ; 其中0或者1是 判斷 不滿一周 是否算一周,

如果結束時間timeend向前一周 間隔天數 不滿7天,不算那就此結束了。

如果要算,那麼問題又來了,把 timeend距離上一周的天數計算出來,假設為 n2 (n2 = timeend所在的星期數 - pos)

那麼最後的式子為 weekinterval = (days - n - n2 ) / 7   + (開始時間的 0或者1) + (結束時間的 0或者1)  ; (注: 0或者1,取決於 開始時間或者結束時間不滿一周是否算一周)。

就到這裡吧。。。。

7 28335以時間間隔判斷幀

在序列通訊中,很難判斷幀標誌,常用的方法是定長 結束符等方法。定長就是約定好協議字元位元組長度,當收到所有位元組後開始處理,但是這種方法不適用於不定長的通訊。結束符就是約定一定的字元作為判斷通訊結束的標誌,比如常用的回車換行符,0d 0a,但是這種方法會浪費通訊資源。下面介紹一種以時間間隔判斷幀,和...

間隔數判斷

題目描述 乙個整型陣列,給定乙個間隔t和乙個差值s,判斷數列中是否存在間隔為t的兩個數字,其差為s。輸入有兩行。第一行輸入 個n,隨後輸入n個整數。第二行輸入兩個整數,分別為t和s.輸入有兩行。一眼看上去這道題其實就是求兩個位置元素的差。記得加絕對值 但是,在陣列迴圈的時候要注意,i不能是從1到n,...

根據輸入時間間隔判斷EditText是否輸入完成

在android開發中經常會需要判斷輸入框的輸入完成情況 根據個人經驗總結出3條判斷editext輸入完成 1新增text監聽 在 aftertextchanged事件中延時2000ms根據延時前和延時後的時間對比判斷在2000ms內是否有再次輸入情況 addtextchangedlistenerb...