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

问题描述 投票:54回答:7

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

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

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

c# date c#-4.0 datetime add
7个回答
99
投票

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

endDate = endDate.AddDays(addedDays);

16
投票

您需要捕获返回值。

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

endDate = endDate.AddDays(addedDays);

9
投票

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

使用示例:

DateTime newDate = endDate.AddDays(2);

6
投票

将enddate分配给某个日期变量,因为AddDays方法返回新的Datetime作为结果。

Datetime somedate=endDate.AddDays(2);

4
投票

用这个:

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

3
投票

你为什么用Int64AddDays要求添加double值。然后你需要使用AddDays.的返回值。见here


2
投票

您可以将日期添加到这样的日期:

// 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);
© www.soinside.com 2019 - 2024. All rights reserved.