如何从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"); 并没有问题。