Increment DateTime Variable

I'm trying to create a loop where my date increments by 1 month while it's in the for loop. Currently It's only displaying today's date. And is not incrementing. I want to change the display date to selected display date instead of today/default

for (int i = 1; i <= 15; i++)
{

    DateTime initialdate = InitialDate.DisplayDate;
    InitialDate.DisplayDate.AddMonths(1);
    initialdate = InitialDate.DisplayDate;

}

I didn't show any of the initialdate being used because I don't think it's necessary.

InitialDate is a DateTimePicker
Initialization of the Datepicker
<DatePicker x:Name="InitialDate"></DatePicker>

Jon Skeet
people
quotationmark

DateTime.AddMonths doesn't change the value you call it on - it returns a new value. This is true of all the DateTime methods. There's nothing which changes the value in place, which is a good job as it's a value type and changes would be lost anyway if they were made to a copy of the variable (e.g. due to being called on the value returned by a property).

You want:

InitialDate.DisplayDate = InitialDate.DisplayDate.AddMonths(1);

Assuming you use initialdate in the rest of the body of the loop, it would be clearer if you just declared it after the increment:

for (int i = 1; i <= 15; i++)
{
    InitialDate.DisplayDate = InitialDate.DisplayDate.AddMonths(1);
    DateTime initialDate = InitialDate.DisplayDate;
    // Use initialDate here
}

(I've renamed the variable to have a capital D for the sake of convention.)

people

See more on this question at Stackoverflow