如何从DateTime中减去一天?
这里有什么错:
DateTime dateForButton = DateTime.Now; dateForButton = dateForButton.AddDays(-1); // ERROR: un-representable DateTime
完整的错误信息是:
增加或减less的值会导致无法表示的date时间。
参数名称:值
当您尝试从DateTime.MinValue
减去一个时间间隔,或者想要将某些内容添加到DateTime.MaxValue
(或者尝试在最小 – 最大时间间隔之外实例化一个date),通常会发生该错误。 你确定你没有在某处分配MinValue
吗?
DateTime dateForButton = DateTime.Now.AddDays(-1);
你可以做 :
DateTime.Today.AddDays(-1)
您可以使用下面的代码:
dateForButton = dateForButton.Subtract(TimeSpan.FromDays(1));
AddDays方法的对象(即目标variables)不能与源相同。
代替:
DateTime today = DateTime.Today; today.AddDays(-7);
试试这个:
DateTime today = DateTime.Today; DateTime sevenDaysEarlier = today.AddDays(-7);
DateTime dt = DateTime.Now; dt.AddDays(-1); //wont work //should set return value as belowe dt = dt.AddDays();
使用AddDays(-1)
为我工作,直到我试图跨越几个月。 当我试图从2017-01-01减去2天时,结果是2016-00-30。 它不能正确处理月份的变化(尽pipe一年似乎没有问题)。
我用date = Convert.ToDateTime(date).Subtract(TimeSpan.FromDays(2)).ToString("yyyy-mm-dd");
并没有问题。