【问题标题】:Datetime in C# add daysC#中的日期时间添加天数
【发布时间】:2013-02-27 21:17:12
【问题描述】:
我想在某个日期添加天数。我有这样的代码:
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
【解决方案1】:
日期时间是不可变的。这意味着您不能更改它的状态,而必须将操作的结果分配给变量。
endDate = endDate.AddDays(addedDays);
【解决方案2】:
你需要捕获返回值。
DateTime.AddDays 方法返回一个对象,其值为实例的日期和时间与相加值之和。
endDate = endDate.AddDays(addedDays);
【解决方案3】:
这是因为AddDays() 方法返回了一个新的DateTime,你没有在任何地方分配或使用它。
使用示例:
DateTime newDate = endDate.AddDays(2);
【解决方案4】:
您可以像这样为日期添加天数:
// 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);
【解决方案5】:
将结束日期分配给某个日期变量,因为AddDays 方法返回新的日期时间作为结果..
Datetime somedate=endDate.AddDays(2);
【解决方案6】:
使用这个:
DateTime dateTime = DateTime.Now;
DateTime? newDateTime = null;
TimeSpan numberOfDays = new TimeSpan(2, 0, 0, 0, 0);
newDateTime = dateTime.Add(numberOfDays);
【解决方案7】:
你为什么使用Int64? AddDays 要求添加 double-值。然后你需要使用AddDays. 的返回值参见here。