今天測試提了一個BUG,說是消息提醒的時機不對,設置的提前2小時,還沒到就提醒了。 看了下代碼 執行 結果是55,按道理應該是170 執行 結果是169.89568451 最後把代碼修改為 BUG解決 總結: 1.Minutes的計算只限於分鐘部分,類型Int,(-59到59) https://ms ...
今天測試提了一個BUG,說是消息提醒的時機不對,設置的提前2小時,還沒到就提醒了。
看了下代碼
(m.ExpectReceiveTime - DateTime.Now).Minutes < (pModel.ErtDelayPrevMinutes == -999 ? 0 : pModel.ErtDelayPrevMinutes))
執行
(m.ExpectReceiveTime - DateTime.Now).Minutes
結果是55,按道理應該是170
執行
(m.ExpectReceiveTime - DateTime.Now).TotalMinutes
結果是169.89568451
最後把代碼修改為
(Convert.ToDecimal((m.ExpectReceiveTime - DateTime.Now).TotalMinutes) < (pModel.ErtDelayPrevMinutes == -999 ? 0 : pModel.ErtDelayPrevMinutes))
BUG解決
總結:
1.Minutes的計算只限於分鐘部分,類型Int,(-59到59)
https://msdn.microsoft.com/zh-cn/library/vs/alm/system.timespan.minutes/css
2.TotalMinutes的計算是整個時間的分鐘數,類型double。
https://msdn.microsoft.com/zh-cn/library/vs/alm/system.timespan.totalminutes/css
補充:
Days; //天部分 Hours; //小時部分
Milliseconds; //毫秒部分
Minutes; //分部分
Seconds; //秒部分
Ticks; //Tick 總數
TotalDays; //總天數
TotalHours; //總小時數
TotalMilliseconds; //總毫秒數
TotalMinutes; //總分鐘數
TotalSeconds; //總秒數