2016-02-13 36 views
-4

我有一個類似03223311(hhmmssff)的字符串。我將比較它與DateTime.Now,看看它們之間的差異是否低於200毫秒。兩個字符串時間和現在的差異

xdate="03223311"; 

    if(Math.Abs(Convert.ToInt32(xdate) - Convert.ToInt32(DateTime.Now.ToString("hhmmssff")))<200) 

我試圖在以1間隔的定時器運行上面的行,但我不能達到該條件,即使我改變xdate到當前時間...。你知道如何解決這個問題,甚至是更好的方法嗎?

+0

而我們仍然沒有一個答案,爲什麼這是行不通的。只有我知道DateTime.Now在進行性能測量時毫無用處。它不會在毫秒更新。在這種情況下,我必須使用秒錶。 – Ivan

回答

3
string input = "03223311"; 

var diff = DateTime.Now.TimeOfDay.Subtract(
       TimeSpan.ParseExact(input, "hhmmssff", null) 
      ).TotalMinutes; //or any other value like TotalMilliseconds 
2

我會先將字符串轉換爲DateTime,以便您可以將蘋果與蘋果進行比較,並利用DateTime對象的功能。一旦你有兩個DateTime對象,你可以減去它們來獲得TimeSpan。 TimeSpan將具有TotalMilliseconds屬性,您可以將其與200常量進行比較。

var xdateValue = DateTime.ParseExact(xdate, "hhmmssff", CultureInfo.InvariantCulture); 
var difference = DateTime.Now - xdateValue; 
if (difference.TotalMilliseconds < 200) ... 
1
if (((DatetTime.Now - DateTime.ParseExact("03223311 ", "hhmmssff", CultureInfo.InvariantCulture))).Milliseconds > 200) 
{ 

} 
相關問題