Coder Perfect

To subtract days from a DateTime, use the subtraction method.

Problem

In my C# program, I have the following code.

DateTime dateForButton =  DateTime.Now;  
dateForButton = dateForButton.AddDays(-1);  // ERROR: un-representable DateTime

I receive the following error whenever I run it:

This is the first time I’ve seen this error notice, and I’m not sure why. I’m led to believe that I can use -1 in an add operation to subtract days based on the responses I’ve read so far, but this is not the case for what I’m trying to achieve, as my question demonstrates.

Asked by Buena

Solution #1

DateTime dateForButton = DateTime.Now.AddDays(-1);

Answered by Christian Phillips

Solution #2

When you try to remove an interval from DateTime, you frequently get this error. If you wish to add something to DateTime, use MinValue. MaximumValue (or you try to instantiate a date outside this min-max interval). Are you sure you don’t have MinValue assigned somewhere?

Answered by CyberDude

Solution #3

You can do:

DateTime.Today.AddDays(-1)

Answered by sam

Solution #4

The following code can be used:

dateForButton = dateForButton.Subtract(TimeSpan.FromDays(1));

Answered by Rajesh Subramanian

Solution #5

The dateTime.AddDays(-1) method does not remove that one day from the referenced dateTime. It will create a new instance, subtracting that one day from the original reference.

DateTime dateTime = DateTime.Now;
DateTime otherDateTime = dateTime.AddDays(-1);

Answered by cahit beyaz

Post is based on https://stackoverflow.com/questions/11151976/subtract-days-from-a-datetime