减去不使用日期时间
本文关键字:日期 时间 | 更新日期: 2023-09-27 17:58:04
我正在尝试将一些计算出的秒数减去实际时间:
DateTime start = new DateTime();
start = DateTime.Now.Subtract(Convert.ToDateTime(stringTime));
它说参数不是"TimeSpan",但DateTime也应该有效。。。它必须接受这两种参数。
我正在VS 2012上使用带有Windows窗体的Framework 2.0。
更新:发现错误;substract返回时间跨度。
start = Convert.ToDateTime(Convert.ToDateTime(stringTime).Subtract(DateTime.Now));
正在工作。
谢谢。
您可以:
- 减去
TimeSpan
,得到DateTime
,或 - 减去
DateTime
,得到TimeSpan
您正试图减去一个DateTime
,得到一个DateTime
。没有这样的方法。
如果将DateTime类型参数传递给Subtract()方法,则返回类型为TimeSpan。如果传递TimeSpan类型,则返回的是DateTime。
因此,这两种类型都被接受为参数,您只需要确保您有正确的返回类型。
查看DateTime.cshttp://referencesource.microsoft.com/#mscorlib/system/datetime.cs,1057
public TimeSpan Subtract(DateTime value) {
return new TimeSpan(InternalTicks - value.InternalTicks);
}
public DateTime Subtract(TimeSpan value) {
long ticks = InternalTicks;
long valueTicks = value._ticks;
if (ticks - MinTicks < valueTicks || ticks - MaxTicks > valueTicks) {
throw new ArgumentOutOfRangeException("value", Environment.GetResourceString("ArgumentOutOfRange_DateArithmetic"));
}
return new DateTime((UInt64)(ticks - valueTicks) | InternalKind);
}