Подтвердить что ты не робот

Datetime в С# добавить дни

Я хочу добавить дни в какую-то дату. У меня есть такой код:

DateTime endDate = Convert.ToDateTime(this.txtStartDate.Text); 
Int64 addedDays = Convert.ToInt64(txtDaysSupp.Text); 
endDate.AddDays(addedDays); 
DateTime end = endDate; 
this.txtEndDate.Text = end.ToShortDateString();

Но этот код не работает, дни не добавляются! Какая глупая ошибка, которую я делаю?

4b9b3361

Ответ 1

DateTime неизменен. Это означает, что вы не можете изменить его состояние и должны назначить результат операции переменной.

endDate = endDate.AddDays(addedDays);

Ответ 2

Вам нужно поймать возвращаемое значение.

Метод DateTime.AddDays возвращает объект, значение которого является суммой даты и времени экземпляра и добавленного значения.

endDate = endDate.AddDays(addedDays);

Ответ 3

Потому что метод AddDays() возвращает новый DateTime, который вы не назначаете или не используете в любом месте.

Пример использования:

DateTime newDate = endDate.AddDays(2);

Ответ 4

Назначьте enddate некоторой переменной даты, потому что метод AddDays возвращает новое Datetime в качестве результата.

Datetime somedate=endDate.AddDays(2);

Ответ 5

Использовать этот:

DateTime dateTime =  DateTime.Now;
DateTime? newDateTime = null;
TimeSpan numberOfDays = new TimeSpan(2, 0, 0, 0, 0);
newDateTime = dateTime.Add(numberOfDays);

Ответ 6

Почему вы используете Int64? AddDays требует добавления double -value. Затем вам нужно использовать возвращаемое значение AddDays. См. здесь.

Ответ 7

Вы можете добавить дни к дате, как это:

// add days to current **DateTime**
var addedDateTime = DateTime.Now.AddDays(10);

// add days to current **Date**
var addedDate = DateTime.Now.Date.AddDays(10);

// add days to any DateTime variable
var addedDateTime = anyDate.AddDay(10);