我想在某个日期添加日子。我有这样的代码:
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);
因为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
值。然后你需要使用AddDays.
的返回值。见here。
您可以将日期添加到这样的日期:
// 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);