Minutes和TotalMinutes的区别

今天测试提了一个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;      //总秒数

时间: 2024-10-09 00:48:02

Minutes和TotalMinutes的区别的相关文章

C# 计算时间差 用timespan函数

转自: TimeSpan 结构  表示一个时间间隔. 命名空间:System 程序集:mscorlib(在 mscorlib.dll 中) 1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻.因此,你可以用DateTime值类型来描述任何在想象范围之内的时间.一个DateTime值代表了一个具体的时刻2.TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值下面的列表涵盖了其中的一部分:A

C# 计算时间差 TimeSpan类

TimeSpan 结构  表示一个时间间隔. 命名空间:System 程序集:mscorlib(在 mscorlib.dll 中) 1.DateTime值类型代表了一个从公元0001年1月1日0点0分0秒到公元9999年12月31日23点59分59秒之间的具体日期时刻.因此,你可以用DateTime值类型来描述任何在想象范围之内的时间.一个DateTime值代表了一个具体的时刻2.TimeSpan值包含了许多属性与方法,用于访问或处理一个TimeSpan值下面的列表涵盖了其中的一部分:Add:与

【JAVA语言程序设计基础篇】--图形-- 三种时钟--增强对类的理解和应用

1.显示任意时间时钟 2.设置三个可见性属性 分别表示时针,分针,秒针的可见性 3.一个精细的时钟 主类:StillClock @SuppressWarnings("serial") class DetailedClock extends JPanel { private int hour; private int minute; private int second; protected int xCenter, yCenter; protected int clockRadius;

【原】监视程序运行时间

Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); // 开始监视代码 // //要运行的代码 // stopwatch.Stop(); // 停止监视 TimeSpan timeSpan = stopwatch.Elapsed; // 获取总时间 double hours = timeSpan.TotalHours; // 小时 double minutes = timeSpan.TotalMinutes; // 分钟 doubl

C#检查一段代码的消耗时间

0.0 如果你想检查某一个函数循环的时间 System.Diagnostics.Stopwatch stopwatch = new System.Diagnostics.Stopwatch(); stopwatch.Start(); //这里是你想检测的时间 stopwatch.Stop(); System.TimeSpan timeSpan = stopwatch.Elapsed; double hours = timeSpan.TotalHours; double minutes = tim

C#监控代码执行效率

System.Diagnostics.Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); // 开始监视代码运行时间 //需要监测的代码 stopwatch.Stop(); // 停止监视 TimeSpan timespan = stopwatch.Elapsed; // 获取当前实例测量得出的总时间 string hours = timespan.TotalHours.ToString("#0.00000000 ");

c#实现统计代码运行时间

方法一: //实例化一个计时器 Stopwatch watch = new Stopwatch(); //開始计时 watch.Start(); //此处为要计算的执行代码 for (int i = 1; i < 1000000; i++) { }   // Execute the task to be timed //结束计时 watch.Stop(); //获取当前实例測量得出的总执行时间(以毫秒为单位) string time = watch.ElapsedMilliseconds.ToS

Stopwatch检测代码运行时间

System.Diagnostics.Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); // 开始监视代码运行时间 // you code .... stopwatch.Stop(); // 停止监视 TimeSpan timespan = stopwatch.Elapsed; // 获取当前实例测量得出的总时间 double hours = timespan.TotalHours; // 总小时 double minutes =

TimeSpan的用法

ASP.NET 中,两个时间相减,得到一个 TimeSpan 实例,TimeSpan 有一些属性:Days.TotalDays.Hours.TotalHours.Minutes.TotalMinutes.Seconds.TotalSeconds.Ticks,注意没有 TotalTicks. 一.TimeSpan常量.字段 TimeSpan.MaxValue;            // 10675199.02:48:05.4775807TimeSpan.MinValue;