我有以下代码:
DateTime start = DateTime.Now;
Thread.Sleep(60000);
DateTime end = DateTime.Now;
我想计算开始时间和结束时间之间的分钟差。我应该怎么做? 对于上面的示例,结果应该是'1'。
提前致谢!
我有以下代码:
DateTime start = DateTime.Now;
Thread.Sleep(60000);
DateTime end = DateTime.Now;
我想计算开始时间和结束时间之间的分钟差。我应该怎么做? 对于上面的示例,结果应该是'1'。
提前致谢!
Substract
方法并使用 TotalMinutes
。var result = end.Subtract(start).TotalMinutes;
如果您需要去除分数分钟,只需将其转换为 int
类型。var result = (int)end.Subtract(start).TotalMinutes;
请查看MSDN获取更多信息:Substract和TotalMinutes
TotalMinutes
是一个 double
,所以 var
也应该是 double
。 - René Vogtresult = end - start;
,在我看来更易于阅读。 - Chris DunawayStopwatch stopWatch = new Stopwatch();
stopWatch.Start();
Thread.Sleep(10000);
stopWatch.Stop();
// Get the elapsed time as a TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;
只需取差值(如果需要,可以四舍五入):
double preciseDifference = (end - start).TotalMinutes;
int differentMinutes = (int)preciseDifference;
使用 TimeSpan。
它代表一个时间间隔,并且会给出你所需要的差异。
以下是一个例子。
TimeSpan span = end.Subtract ( start );
Console.WriteLine( "Time Difference (minutes): " + span.Minutes );
Sleep
只保证在n
毫秒内不会执行任何工作,而不是在n
毫秒后恢复工作。如果有时结果不正确,请不要感到惊讶。 - Kenneth K.DateTime.Now
来测量代码的性能。请使用System.Diagnostics.Stopwatch
。请阅读.NET开发人员常见的五个夏令时反模式。 - Matt Johnson-Pint