Ответ 1
DateTime неизменен. Это означает, что вы не можете изменить его состояние и должны назначить результат операции переменной.
endDate = endDate.AddDays(addedDays);
Я хочу добавить дни в какую-то дату. У меня есть такой код:
DateTime endDate = Convert.ToDateTime(this.txtStartDate.Text);
Int64 addedDays = Convert.ToInt64(txtDaysSupp.Text);
endDate.AddDays(addedDays);
DateTime end = endDate;
this.txtEndDate.Text = end.ToShortDateString();
Но этот код не работает, дни не добавляются! Какая глупая ошибка, которую я делаю?
DateTime неизменен. Это означает, что вы не можете изменить его состояние и должны назначить результат операции переменной.
endDate = endDate.AddDays(addedDays);
Вам нужно поймать возвращаемое значение.
Метод DateTime.AddDays возвращает объект, значение которого является суммой даты и времени экземпляра и добавленного значения.
endDate = endDate.AddDays(addedDays);
Потому что метод AddDays()
возвращает новый DateTime
, который вы не назначаете или не используете в любом месте.
Пример использования:
DateTime newDate = endDate.AddDays(2);
Назначьте enddate некоторой переменной даты, потому что метод AddDays
возвращает новое Datetime в качестве результата.
Datetime somedate=endDate.AddDays(2);
Использовать этот:
DateTime dateTime = DateTime.Now;
DateTime? newDateTime = null;
TimeSpan numberOfDays = new TimeSpan(2, 0, 0, 0, 0);
newDateTime = dateTime.Add(numberOfDays);
Почему вы используете Int64
? AddDays
требует добавления double
-value. Затем вам нужно использовать возвращаемое значение AddDays.
См. здесь.
Вы можете добавить дни к дате, как это:
// 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);