2016-07-09 28 views
-1

我想創建腳本,檢查是目前的時間過去了,但得到一些錯誤。如何檢查,在C#中用timeStamp傳遞「X分鐘」?

DateTime currentTime = DateTime.Now; 
TimeSpan pauseMin = TimeSpan.FromMinutes(1); 
TimeSpan compare = currentTime + pauseMin; 
if (currentTime >= compare) 
return null; 
+0

對於牆壁的時候,使用'System.DateTime'。對於經過的時間,使用'System.Diagnostics.Stopwatch'。 – yaakov

回答

1

我會寫爲

DateTime currentTime = DateTime.Now; 
TimeSpan pauseMin = TimeSpan.FromMinutes(1); 
DateTime compare = currentTime.Add(pauseMin); 
if (currentTime >= compare) { 
    return null; 
} 

該使用對象,你試圖用一切代表類型。 DateTime的可以將Timespan添加到他們:https://msdn.microsoft.com/en-us/library/system.datetime.add%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

或Istern的答案,如果你總是隻是添加一個整數分鐘的時間。

0

DateTimeTimeSpan是不同的。您可以使用currentTime這樣的:

TimeSpan currentTime = TimeSpan.FromTicks(DateTime.Now.Ticks); 

,你可以得到過去了分鐘是這樣的:

double minutes = (compare - currentTime).TotalMinutes; 
+0

試圖通過你的例子修改代碼,但仍然有錯誤。 TimeSpan currentTime = TimeSpan.FromSeconds(DateTime.Now.Second); TimeSpan pauseMin = TimeSpan.FromSeconds(1); TimeSpan compare = currentTime + pauseMin; double minutes =(compare - currentTime).TotalMinutes; if(currentTime> = minutes) return null; – Harardin

+0

你可以發佈你的錯誤? –

+0

而你比較時間跨度和雙倍。這不好。 –

1

你不能比較DateTime和時間跨度。

嘗試 var compare = currentTime.AddMinutes(1)

如果您需要以某種方式使用時間跨度,使用傑米·F公司的答覆。

0

如果你只是想暫停1分鐘,你可以使用

System.Threading.Thread.Sleep(1000 * 60); // 1 minute = 60000 milliseconds 

如果你想你的函數運行1分鐘,你可以使用像

var returnAt = DateTime.Now().AddMinutes(1); 

while (true) 
{ 
    // your code here ? 

    if (DateTime.Now() >= returnAt) return null; 
}