[股票]未登入天數計算 (討論)

作者: firejox (Tangent)   2017-10-19 21:19:47
HackMD 好讀版 https://hackmd.io/s/ByRfXY76W
理由
目前殭屍稅是以未登入天數*當日薪水去計算,而目前未登入天數計算為:
未登入天數累進 = floor((現在登入的時間 - 上次登入的時間) / 一天的時間)
若上次登入時間小於當季開始時間,則以當季開始時間算
換季時,未登入天數統計:
以當季結束時間,再做如下的累進公式一次:
floor((當季結束時間 - 最近一次登入的時間) / 一天的時間)
若最後的算出來的未登入天數大於當季的天數(目前是7天),則
未登入的天數為當季的天數。
備註:
換季時做的累進公式並不會去判斷是否最近一次登入的時間小於當季開始的時間,
而是以實際最近一次登入的時間去計算。
而這樣的計算,會發生即使每天有登入,也還會被記為登入天數的情況。
例如:昨天十點登,今天十一點登,則今天會被記未登入天數一天。這樣不符合當初對於當
日未登入的使用者不發薪的目的。
改進方案
1. 維持原樣
* 未登入天數計算公式 : 如上所述
* 系統更動 : 無
* 系統效能影響 : 無影響
* 對每日長時間遊玩的使用者的影響 : 不會被課稅
* 對於每日上線時間不固定的使用者的影響 : 如上所述,有可能會被記未登入
天數,課殭屍稅。
* 對殭屍的影響 : 記未登入天數,被課稅
2. 以換季時間 (目前是 10:00) 作為每天的換日時間點,以跨過換日時間點的次數
來計算未登入次數
* 未登入天數計算公式 :
未登入天數累進 = max(上次登入到現在跨過的換日點總數 - 1, 0)
換日點:每日 10:00
跨過換日點的定義為:
上次登入的時間 <= 換日點的時間 < 現在登入的時間
若上次登入的時間小於當季開始時間,則以當季開始時間開始算
換季時,未登入天數統計:
以當季節束時間,再做如下的累進公式一次:
floor((當季結束時間 - 最近一次登入的時間) / 一天的時間)
若最後的算出來的未登入天數大於當季的天數(目前是7天),則
未登入的天數為當季的天數。
備註:
換季時做的累進公式並不會去判斷是否最近一次登入的時間小於當季開始
的時間,而是以實際最近一次登入的時間去計算。
* 實作細節 :
上次登入到現在跨過的換日點總數計算:
令現在登入時間為N,上次登入時間為P,當季開始時間為S,一天的時間為T
則跨過換日點總數為:
ceil((N - S)/T) - ceil((max(P, S) - S)/T)
* 系統更動 : 只要更新公式就好
* 系統效能影響 : 極小,可忽略
* 對每日長時間遊玩的使用者的影響 : 不會被課稅
* 對於每日上線時間不固定的使用者的影響 : 不會被課稅
* 對殭屍的影響 : 記未登入天數,被課稅
登入例子比較
參照HackMD好讀版 https://hackmd.io/s/ByRfXY76W
以上是提案內容。

Links booklink

Contact Us: admin [ a t ] ucptt.com