查看: 667|回复: 0

[ASP.NET教程] Minutes和TotalMinutes的区别

发表于 2017-10-1 09:10:27
尚学堂AD

今天测试提了一个BUG,说是消息提醒的时机不对,设置的提前2小时,还没到就提醒了。

看了下代码

  1. (m.ExpectReceiveTime - DateTime.Now).Minutes < (pModel.ErtDelayPrevMinutes == -999 ? 0 : pModel.ErtDelayPrevMinutes))
复制代码

执行

  1. (m.ExpectReceiveTime - DateTime.Now).Minutes
复制代码

结果是55,按道理应该是170

执行

  1. (m.ExpectReceiveTime - DateTime.Now).TotalMinutes
复制代码

结果是169.89568451

最后把代码修改为

  1. (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; //总秒数



回复

使用道具 举报