C#中的日期时间添加天数

Nom*_*Ali 59 c# datetime date add c#-4.0

我想在某个日期添加日子.我有这样的代码:

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

但是这段代码没有用,几天都没有添加!我正在做的那个愚蠢的错误是什么?

Dar*_*ung 103

DateTime是不可变的.这意味着您无法更改其状态,必须将操作结果分配给变量.

endDate = endDate.AddDays(addedDays);
Run Code Online (Sandbox Code Playgroud)


Jen*_*sen 16

您需要捕获返回值.

DateTime.AddDays方法返回一个对象是谁的值是实例的日期和时间,增加值的总和.

endDate = endDate.AddDays(addedDays);
Run Code Online (Sandbox Code Playgroud)

  • 主持人注意:这不是 /sf/answers/1075197301/ 的重复答案:检查发布日期; (2认同)

Fre*_*man 10

因为该AddDays()方法返回一个新的DateTime,你没有在任何地方分配或使用.

使用示例:

DateTime newDate = endDate.AddDays(2);
Run Code Online (Sandbox Code Playgroud)


cod*_*der 6

将enddate分配给某个日期变量,因为AddDaysmethod返回new Datetime作为结果.

Datetime somedate=endDate.AddDays(2);
Run Code Online (Sandbox Code Playgroud)


Nay*_*ian 6

您可以像这样在日期中添加天数:

// 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);
Run Code Online (Sandbox Code Playgroud)


小智 5

用这个:

DateTime dateTime =  DateTime.Now;
DateTime? newDateTime = null;
TimeSpan numberOfDays = new TimeSpan(2, 0, 0, 0, 0);
newDateTime = dateTime.Add(numberOfDays);
Run Code Online (Sandbox Code Playgroud)