C#DateTime评估问题

时间:2011-08-25 17:34:39

标签: c# asp.net-mvc-3 datetime

所以我想弄清楚我对这个逻辑做错了什么。这看起来很简单,我的断点表明'if'语句中的evaulation正在解析为True,但是sum.ppStart等人没有添加14天。

这可能很简单,但任何帮助都会受到赞赏。

//Determine the start/end days of each week of the pay period and retrieve a list of those entries

DateTime[] weeks = timeTools.calcPP(0);
DateTime today = DateTime.Now.Date;

if (today > weeks[3])
{
  weeks[0].AddDays(14);
  weeks[3].AddDays(14);
  weeks[4].AddDays(14);
}

sum.ppStart = weeks[0];
sum.ppEnd = weeks[3];
sum.payDate = weeks[4];

3 个答案:

答案 0 :(得分:8)

AddDays返回DateTime new 实例,现有值未更改,它是不可变结构。使用该功能时,捕获结果

DateTime myDate = ...
myDate = myDate.AddDays(14);

答案 1 :(得分:2)

那是因为你没有使用AddDays方法的结果。签名是

 public DateTime AddDays(double days) 

左右(见link)。你需要这样做:

weeks[0] = weeks[0].AddDays(14);

答案 2 :(得分:2)

您需要指定值:

if (today > weeks[3])
{
  weeks[0] = weeks[0].AddDays(14);
  weeks[3] = weeks[3].AddDays(14);
  weeks[4] = weeks[4].AddDays(14);
}