I am trying to calculate how many days there are between different dates. Like the topic says, I'm getting a negative value. I guess I could just take the absolute value, but the fact that it returns a negative value, makes me doubt if the calculations are correct. Below is my code:
DateTime previousDay = new DateTime(1998, 6, 31, new GregorianCalender());
DateTime nextDay = new DateTime(1998, 6, 3, new GregorianCalender());
TimeSpan differenceInDays = (nextDay - previousDay);
double xAxisValue = differenceInDays.TotalDays;
Ofcourse 3-31 gives -28, but since we want it to show days between, it makes no sense that it doesn't return a positive value. Am I doing something wrong?
I also tried this approach:
(a - b).TotalDays
where a and b are of type Datime
I guess I could just take the absolute value, but the fact that it returns a negative value, makes me doubt if the calculations are correct.
Why? nextDay
is earlier than previousDay
, so of course subtracting previousDay
will give a negative result.
You're effectively asking "How many days do I need to add to previousDay
in order to get to nextDay
? The answer is -28.
What does concern me is the names here - I'd expect a nextDay
value to always be later than a previousDay
value - so either the way you're finding those values is incorrect, or you need to change the names to make the meaning clearer. Presumably they're not "next" and "previous" in respect to the same context.
See more on this question at Stackoverflow