我在C#程序中有以下代码.
DateTime dateForButton = DateTime.Now;
dateForButton = dateForButton.AddDays(-1); // ERROR: un-representable DateTime
Run Code Online (Sandbox Code Playgroud)
每当我运行它时,我都会收到以下错误:
增加或减去的值会导致无法表示的DateTime.
参数名称:value
我以前从未见过这个错误信息,也不明白为什么我会看到它.从我到目前为止阅读的答案来看,我总是相信我可以在添加操作中使用-1来减去天数,但正如我的问题所示,这不是我试图做的事情.
chr*_*dev 260
DateTime dateForButton = DateTime.Now.AddDays(-1);
Run Code Online (Sandbox Code Playgroud)
Cyb*_*ude 67
当您尝试从中减去某个间隔DateTime.MinValue或想要添加某些内容DateTime.MaxValue(或者尝试实例化此最小 - 最大间隔之外的日期)时,通常会发生该错误.你确定你没有在哪里指派MinValue?
Raj*_*ian 35
您可以使用以下代码:
dateForButton = dateForButton.Subtract(TimeSpan.FromDays(1));
Run Code Online (Sandbox Code Playgroud)
cah*_*yaz 12
在dateTime.AddDays(-1) 不减去一天,有一个dateTime参考。它将返回一个新实例,从原始引用中减去这一天。
DateTime dateTime = DateTime.Now;
DateTime otherDateTime = dateTime.AddDays(-1);
Run Code Online (Sandbox Code Playgroud)
小智 6
我在使用AddDays(-1) 时遇到了问题。
我的解决方案是TimeSpan。
DateTime.Now - TimeSpan.FromDays(1);
Run Code Online (Sandbox Code Playgroud)
小智 5
AddDays 方法的对象(即目标变量)不能与源相同。
代替:
DateTime today = DateTime.Today;
today.AddDays(-7);
Run Code Online (Sandbox Code Playgroud)
试试这个:
DateTime today = DateTime.Today;
DateTime sevenDaysEarlier = today.AddDays(-7);
Run Code Online (Sandbox Code Playgroud)
不是直接从日期对象中直接减少天数,而是先获取日期值然后减去天数。见下面的例子:
DateTime SevenDaysFromEndDate = someDate.Value.AddDays(-1);
Run Code Online (Sandbox Code Playgroud)
这里,someDate 是一个 DateTime 类型的变量。