我有下面的代碼: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/) –