如何检查 C# 中的时间戳“X 分钟”是否过去了?
How to check, is “X minutes” passed with timeStamp in C#?
我正在尝试创建脚本来检查当前时间是否已过,但出现了一些错误。
DateTime currentTime = DateTime.Now;
TimeSpan pauseMin = TimeSpan.FromMinutes(1);
TimeSpan compare = currentTime + pauseMin;
if (currentTime >= compare)
return null;
DateTime
和TimeSpan
是不同的。您可以像这样使用 currentTime
:
TimeSpan currentTime = TimeSpan.FromTicks(DateTime.Now.Ticks);
你可以像这样通过分钟:
double minutes = (compare - currentTime).TotalMinutes;
您无法比较 DateTime 和 TimeSpan。
试试看
var compare = currentTime.AddMinutes(1)
如果您需要以某种方式使用 TimeSpan,请使用 Jamie F 的回答。
我会这样写
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 的回答,如果你总是只在时间上加上一个整数分钟。
如果只想暂停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;
}
我正在尝试创建脚本来检查当前时间是否已过,但出现了一些错误。
DateTime currentTime = DateTime.Now;
TimeSpan pauseMin = TimeSpan.FromMinutes(1);
TimeSpan compare = currentTime + pauseMin;
if (currentTime >= compare)
return null;
DateTime
和TimeSpan
是不同的。您可以像这样使用 currentTime
:
TimeSpan currentTime = TimeSpan.FromTicks(DateTime.Now.Ticks);
你可以像这样通过分钟:
double minutes = (compare - currentTime).TotalMinutes;
您无法比较 DateTime 和 TimeSpan。
试试看
var compare = currentTime.AddMinutes(1)
如果您需要以某种方式使用 TimeSpan,请使用 Jamie F 的回答。
我会这样写
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 的回答,如果你总是只在时间上加上一个整数分钟。
如果只想暂停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;
}