所以我想弄清楚我对这个逻辑做错了什么。这看起来很简单,我的断点表明'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];
答案 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);
}