火坑 一切從TimeSpan說起

2022-01-23 01:09:57 字數 1479 閱讀 5701

小編在編寫wpf程式時,需要做乙個判斷:定時使用modbus協議使用quartz.net 定時任務讀取裝置中的資料,同時也使用定時任務判斷是否長時間獲取不到資料的情況,如果程式中超過一分鐘沒有獲取到資料(資料沒有更新),則認為已經掉線。因此在類中使用了datetime型別資料記錄獲取資料的時間。

runningtime=datetime.minvalue;

varx =datetime.now-runningtime;

vary =x.minutes>1?"連線斷開":"連線正常";

上述x的型別為timespan。那麼問題就從這裡埋下了。

出現問題的時間點:在不連線裝置時,保持程式在執行狀態,整點時間時出現的時候就會出現連線正常的狀態,通過日誌進行分析,發現整點時,分鐘為0,與時間最小值做完運算後得到的x.minutes

的值就為0,因此出現連線正常的情況。

通過timespan的文件發現timespan中的屬性如下:

屬性解釋

days

獲取當前 timespan 結構所表示的時間間隔的天數部分。

hours

獲取當前 timespan 結構所表示的時間間隔的小時數部分。

milliseconds

獲取當前 timespan 結構所表示的時間間隔的毫秒數部分。

minutes

獲取當前 timespan 結構所表示的時間間隔的分鐘數部分。

seconds

獲取當前 timespan 結構所表示的時間間隔的秒數部分。

ticks

獲取表示當前 timespan 結構的值的刻度數。

totaldays

獲取以整天數和天的小數部分表示的當前 timespan 結構的值。

totalhours

獲取以整小時數和小時的小數部分表示的當前 timespan 結構的值。

totalmilliseconds

獲取以整毫秒數和毫秒的小數部分表示的當前 timespan 結構的值。

totalminutes

獲取以整分鐘數和分鐘的小數部分表示的當前 timespan 結構的值。

totalseconds

獲取以整秒數和秒的小數部分表示的當前 timespan 結構的值。

通過timespan的屬性發現,按分鐘比較需要使用totalminutes屬性才可以。

在通過時間運算方法使用timespan作比較時,要特別注意。 還有,有事沒事要多看相關文件才可以。

一切從友善開始

假如你生氣時,對家人一頓火,你會覺得舒服了,但對方會怎樣呢?他也能分享到你的痛快嗎?你那充滿火藥味的聲調 仇視的態度,能使對方贊同你嗎?如果你握緊兩個拳頭來找我,伍德羅。威爾遜 說,我敢保證我的拳頭會握得比你的更緊。但如果你到我這兒說 讓我們坐下來一起商量,看看為什麼我們意見不同,問題出在哪兒。那麼...

一切從「糟糕」開始

時至今日,任何一種工作都要求我們學會 思考 產品開發 提案經營 市場分析 廣告製作 無論你從事的是何種職業,都需要學會開動大腦,提出 精彩創意 當然,我們公司所在的it行業亦不例外。無論是為客戶設計網頁也好,還是自行開發創新業務也罷,這些工作的成敗無一不是由創意所決定的。可以說,創意關係著一家公司的...

一切從自律開始

我所認為的自律 行為的決定,在理性的想法與感性的想法或舊習慣的思維發生衝突的時候,理性能夠獲勝,並且隨著時間的發展,能夠改變感性的想法和舊習慣的思維,從而培養一種可持續的好的品質或者好的習慣。當你看完這條對於自律的定義,會不會覺得很不屑呢?覺得理性是重要,但是感性也很重要,如果沒有了感性,人們的生活...