将分钟添加到日期不会更改Date C#.NET

时间:2009-01-08 13:16:09

标签: c# datetime

double TotalMinute = 300.0 double TotalMinutesAdded = 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 correctDate=Convert.ToDateTime(dr[2]);

                    correctDate.AddMinutes(TotalMinute);
                    correctDate.AddMinutes(TotalMinutesAdded);

                    dr[2]=correctDate;

                }

8 个答案:

答案 0 :(得分:17)

DateTiem添加*函数不应该更改当前的DateTime值。他们返回新的价值。

如果您希望更改值,请按以下方式键入:

correctDate = correctDate.AddMinutes(TotalMinute);

答案 1 :(得分:6)

DateTime是不可变的;像AddMinutes这样的函数返回 new DateTime;所以你需要捕获返回的值:

DateTime foo = ...
DateTime bar = foo.AddMinutes(5);

答案 2 :(得分:5)

如前所述,由于DateTime个对象是不可变的,您必须重新分配变量。

但是,需要注意的是,您可以将操作链接为:

correctDate = correctDate.AddMinutes(TotalMinute)
                         .AddMinutes(TotalMinutesAdded);

答案 3 :(得分:1)

您必须将correctDate变量设置为从AddMinutes调用返回的实例:

correctDate = correctDate.AddMinutes(TotalMinute);

答案 4 :(得分:1)

DateTime是一个不可变类型,很像String。您可以像编写str = str.Replace(“hello”,“”)一样编写date = date.AddDays(1)。

答案 5 :(得分:0)

AddMinutes()不会更改原始DateTime的值。它返回一个新的DateTime,其中包含您必须分配给变量的新值。

答案 6 :(得分:0)

问题在于

correctDate.AddMinutes(TotalMinute); 
correctDate.AddMinutes(TotalMinutesAdded);

应该是

correctDate = correctDate.AddMinutes(TotalMinute); 
correctDate = correctDate.AddMinutes(TotalMinutesAdded);

AddMinutes方法返回结果,而不是将分钟添加到correctDate

答案 7 :(得分:0)

...并将当前时间的5分钟添加到日期时间变量:

dim dateFive_Minute_Time as datetime

dateFive_Minute_Time = Now.AddMinutes(5)