我的C#程序中有以下代码。
DateTime dateForButton = DateTime.Now;
dateForButton = dateForButton.AddDays(-1); // ERROR: un-representable DateTime
每当我运行它时,我都会收到以下错误:
添加或减去的值会导致无法表示的DateTime。
参数名称:值
我以前从未见过这个错误信息,也不明白为什么我会看到它。从我到目前为止阅读的答案来看,我认为我可以在添加操作中使用-1来减去天数,但正如我的问题所示,这不是我试图做的事情。< / p>
答案 0 :(得分:238)
DateTime dateForButton = DateTime.Now.AddDays(-1);
答案 1 :(得分:63)
当您尝试从DateTime.MinValue
中减去间隔或者想要向DateTime.MaxValue
添加内容时(或者您尝试实例化此最小 - 最大间隔之外的日期),通常会发生该错误。你确定你没有在某处分配MinValue
吗?
答案 2 :(得分:38)
你可以这样做:
DateTime.Today.AddDays(-1)
答案 3 :(得分:30)
您可以使用以下代码:
dateForButton = dateForButton.Subtract(TimeSpan.FromDays(1));
答案 4 :(得分:3)
AddDays方法的对象(即目标变量)不能与源相同。
而不是:
.glyphicon {
font-size: 25px;
vertical-align: middle;
}
#authForm {
display:inline-block;
width:150px;
}
请改为尝试:
DateTime today = DateTime.Today;
today.AddDays(-7);
答案 5 :(得分:2)
我在使用 AddDays(-1)时遇到了问题。
我的解决方案是 TimeSpan 。
DateTime.Now - TimeSpan.FromDays(1);
答案 6 :(得分:2)
首先直接获取日期值,然后减去天数,而不是直接从日期对象直接减少天数。参见以下示例:
DateTime SevenDaysFromEndDate = someDate.Value.AddDays(-1);
在这里,someDate是类型DateTime的变量。
答案 7 :(得分:0)
dateTime.AddDays(-1)
不会从dateTime
引用中减去那一天。它将返回一个新实例,从原始引用中减去一天。
DateTime dateTime = DateTime.Now;
DateTime otherDateTime = dateTime.AddDays(-1);
答案 8 :(得分:0)
使用AddDays(-1)
为我工作直到我试图跨越几个月。当我试图从2017-01-01减去2天时,结果是2016-00-30。它无法正确处理月份变化(虽然这一年似乎很好)。
我使用了date = Convert.ToDateTime(date).Subtract(TimeSpan.FromDays(2)).ToString("yyyy-mm-dd");
没有问题。