我想創建腳本,檢查是目前的時間過去了,但得到一些錯誤。如何檢查,在C#中用timeStamp傳遞「X分鐘」?
DateTime currentTime = DateTime.Now;
TimeSpan pauseMin = TimeSpan.FromMinutes(1);
TimeSpan compare = currentTime + pauseMin;
if (currentTime >= compare)
return null;
我想創建腳本,檢查是目前的時間過去了,但得到一些錯誤。如何檢查,在C#中用timeStamp傳遞「X分鐘」?
DateTime currentTime = DateTime.Now;
TimeSpan pauseMin = TimeSpan.FromMinutes(1);
TimeSpan compare = currentTime + pauseMin;
if (currentTime >= compare)
return null;
我會寫爲
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的答案,如果你總是隻是添加一個整數分鐘的時間。
DateTime
和TimeSpan
是不同的。您可以使用currentTime
這樣的:
TimeSpan currentTime = TimeSpan.FromTicks(DateTime.Now.Ticks);
,你可以得到過去了分鐘是這樣的:
double minutes = (compare - currentTime).TotalMinutes;
試圖通過你的例子修改代碼,但仍然有錯誤。 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
你可以發佈你的錯誤? –
而你比較時間跨度和雙倍。這不好。 –
你不能比較DateTime和時間跨度。
嘗試 var compare = currentTime.AddMinutes(1)
如果您需要以某種方式使用時間跨度,使用傑米·F公司的答覆。
如果你只是想暫停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;
}
對於牆壁的時候,使用'System.DateTime'。對於經過的時間,使用'System.Diagnostics.Stopwatch'。 – yaakov