我有下面的代码:C# - 计算分钟的时间差
DateTime start = DateTime.Now;
Thread.Sleep(60000);
DateTime end = DateTime.Now;
,我想计算起点和终点之间的分钟差。我该怎么做?对于上面的例子,结果应该是'1'。
在此先感谢!
我有下面的代码:C# - 计算分钟的时间差
DateTime start = DateTime.Now;
Thread.Sleep(60000);
DateTime end = DateTime.Now;
,我想计算起点和终点之间的分钟差。我该怎么做?对于上面的例子,结果应该是'1'。
在此先感谢!
您可以使用Subtract
方法并使用TotalMinutes
。
var result = end.Subtract(start).TotalMinutes;
如果你需要它没有小数分钟只投它作为一个int
。
var result = (int)end.Subtract(start).TotalMinutes;
看一看在MSDN了解更多信息:Substract和TotalMinutes
谢谢,这就是比我预期的更容易! –
我想问一下,在这个例子中var和int有什么区别? –
@斯科特谢谢;) –
使用TimeSpan。
它代表一个时间间隔,并会给你你正在寻找的差异。
下面是一个例子。
TimeSpan span = end.Subtract (start);
Console.WriteLine("Time Difference (minutes): " + span.Minutes);
简单地走差异化(也许圆,如果你想):
double preciseDifference = (end - start).TotalMinutes;
int differentMinutes = (int)preciseDifference;
我想这样做的更优雅的方式是通过使用秒表级
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
Thread.Sleep(10000);
stopWatch.Stop();
// Get the elapsed time as a TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;
这不仅仅是优雅。这是测量流逝时间的唯一正确方法。 –
结果不保证是1.它可能是1,它可能会更大。 '睡眠'只保证'n'毫秒内不会做任何工作,而不会在'n'毫秒内恢复工作。如果您的结果有时不正确,请不要感到惊讶。 –
您应该*不*使用'DateTime.Now'来衡量代码的性能。使用'System.Diagnostics.Stopwatch'。请阅读[.NET开发人员的五种常见夏令时反模式](http://codeofmatt.com/2015/03/06/common-daylight-saving-time-mistakes-for-net-developers/) –