亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

ESBasic 可復用的.NET類庫(01) -- 時刻 Sho

系統 1638 0

(如果您能對照著源碼來閱讀本文,效果會更好。)

1. 緣起:

假設我們的員工打卡系統,需要設定公司規定的上班時間、下班時間、以及還要對員工是否遲到早退等這些情況進行判斷。

我們以什么方式來記錄類似上下班時間這樣只有時分秒沒有年月日的時間了?你說可以使用 DateTime ,但是合適嗎?總是覺得用 DateTime 來表示上下班的時間很別扭,因為我們的上下班時間并需要指定到具體的哪一天啊。

我設計了 ESBasic.ShortTime 來對類似上下班時間的概念進行抽象。 ShortTime 只有時分秒三個必需的屬性,不必再牽扯到日期。

ShortTime 的形象示意圖如下:

Hour

Minute

Second

2. 適用場合:

任何只需要使用時分秒來表示時刻的場合。

3 .設計思想與實現

ShortTime 的設計與實現都是相當簡單的,其類圖如下:
ESBasic 可復用的.NET類庫(01) -- 時刻 ShortTime
ShortTime
Hour Minute Second 三個屬性, Hour 采用 24 小時制,取值范圍為 0~23 Minute Second 的取值范圍都是 0~59 。如果在設置這些屬性的值超過了其自身的取值范圍,屬性的 set 方法會自動將其修正到正確的值。

ShortTime 實現了 IComparable 泛型接口,表示 ShortTime 對象之間可以相互比較。 ShortTime 所表示的時刻的值越大,則 ShortTime 就越大,這是完全一致的。

ShortTime 是可序列化的,表示可以通過 Remoting 進行遠程傳遞。

ShortTime 提供了一個非常有用的方法 IsOnTime ,用于判斷是否到了指定的時刻。該方法接受兩個參數: target maxToleranceInSecs target 即是與當前對象進行比較的目標, maxToleranceInSecs 表示認為當前對象與 target 所表示的時間是同一時刻所允許的最大誤差(單位為秒)。比如, maxToleranceInSecs 取值為 3 秒,那么 22:15:00 22:15:02 就被認為是同一時刻, IsOnTime 方法將返回 true

4. 使用時的注意事項

1 ShortTime 的精度只能到秒,不能記錄毫秒、微秒等更小的精度。

2 IsOnTime 方法的 maxToleranceInSecs 參數的取值是由我們的系統需求所能允許的最大時刻誤差來決定了。比如,你的輪詢引擎是每隔 5 秒鐘檢測一次是否到了指定的時刻,那么在這種情況下 maxToleranceInSecs 參數就應該設置為 5 ,而不是更大或更小。

5. 擴展

我們可以將表示上班時間的 ShortTime 對象和表示下班時間的 ShortTime 對象組合成一個 ShortTimeScope 對象,用于表示工作時間。

ESBasic. ShortTimeScope 用來表示一個時間范圍,當然,這個范圍的最大長度為 24 小時(更準確的應該是 23 小時 59 59 秒),也就是說, ShortTimeScope 不能表示跨天的時間段。

如果我們要判斷某一時刻是否在 ShortTimeScope 指定的時間范圍內,可以調用 ShortTimeScope Contains 方法。

ShortTimeScope 對象之間很難進行比較大小,但是可以比較是否相等,所以 ShortTimeScope 實現了“ == ”操作符。

另外,在我們后面介紹的 CircleTaskSwitcher (循環任務切換器),它的實現也用到了本節講到的 ShortTime

注:ESBasic源碼可到 http://esbasic.codeplex.com/ 下載。

ESBasic 可復用的.NET類庫(01) -- 時刻 ShortTime


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 亚洲三级久久 | 天天干天天做天天操 | www.国产视频| 快色视频网站 | 福利在线视频一区热舞 | 久久精品道一区二区三区 | 日本特黄特色aaa大片免费 | 亚洲精品成人a | 91在线精品老司机免费播放 | 国产精品亚洲片在线观看麻豆 | 韩国日本美国免费毛片 | 日日射天天干 | 国产精品免费大片 | 爱操成人网 | 人人干人人爱 | 欧美特黄a级猛片a级 | 五月天激情亚洲婷婷在线 | 久久午夜夜伦伦鲁鲁片 | 欧美成人一区二区三区不卡 | 99久久免费费视频在线观看 | 亚洲国产婷婷香蕉久久久久久 | 久久这里精品青草免费 | 国产成人乱码一区二区三区在线 | 一级毛片免费视频 | 精品九九在线 | 99久久精品免费看国产交换 | 欧美精品日日鲁夜夜 | 香蕉依依精品视频在线播放 | 色福利网 | 久久婷婷激情综合中文字幕 | 亚拍精品一区二区三区 | 天天上天天干 | a大片久久爱一级 | 狠狠综合久久久久综合 | 四虎免费久久影院 | 性欧美视频 | 日韩51| 中国国产成人精品久久 | 不卡影视 | 国产深夜福利19禁在线播放 | 午夜日韩视频 |