将分钟添加到日期不会更改C#NET的日期
双总分钟=300.0 两倍总分钟数相加=1378.0将分钟添加到日期不会更改C#NET的日期,c#,datetime,C#,Datetime,双总分钟=300.0 两倍总分钟数相加=1378.0 double TotalMinute=300.0 double TotalMinutesAdded=1378.0 foreach(DataRow dr in ds.Tables[0].Rows) { //Add The above Timings to each Row's 2nd Column DateTime correc
double TotalMinute=300.0
double TotalMinutesAdded=1378.0
foreach(DataRow dr in ds.Tables[0].Rows)
{
//Add The above Timings to each Row's 2nd Column
DateTime correctDate=Convert.ToDateTime(dr[2]);
correctDate.AddMinutes(TotalMinute);
correctDate.AddMinutes(TotalMinutesAdded);
dr[2]=correctDate;
}
DateTiem Add*函数不应更改当前的DateTime值。它们返回新值 如果要更改值,请键入以下内容:
correctDate = correctDate.AddMinutes(TotalMinute);
必须将correctDate变量设置为AddMinutes调用返回的实例:
correctDate = correctDate.AddMinutes(TotalMinute);
AddMinutes()不会更改原始日期时间的值。它返回一个新的DateTime,其中包含必须分配给变量的新值。DateTime是不可变的;像AddMinutes这样的函数返回一个newDateTime;因此,您需要捕获返回的值:
DateTime foo = ...
DateTime bar = foo.AddMinutes(5);
DateTime是一种不可变类型,很像String。您可以像编写str=str.Replace(“hello”)一样编写date=date.AddDays(1)。问题在于
correctDate.AddMinutes(TotalMinute);
correctDate.AddMinutes(TotalMinutesAdded);
应该是
correctDate = correctDate.AddMinutes(TotalMinute);
correctDate = correctDate.AddMinutes(TotalMinutesAdded);
AddMinutes方法返回结果,而不是如前所述将分钟添加到correctDate,因为
DateTime
对象是不可变的,所以您必须重新分配变量
但是,需要注意的是,可以按如下方式链接操作:
correctDate = correctDate.AddMinutes(TotalMinute)
.AddMinutes(TotalMinutesAdded);
…并将当前时间的5分钟添加到datetime变量中:
dim dateFive_Minute_Time as datetime
dateFive_Minute_Time = Now.AddMinutes(5)
鉴于
correctDate
是一个DateTime
,我不确定.Value
在做什么-但你的观点已经足够清楚了-如果DateTime中唯一的实例成员被标记为readonly,那么pIt将非常好,因为它实际上是不可变的。MSDN库需要为每个MSDN方法条目提供一个示例,这样人们就可以立即获得它。