我知道这个问题可能有一个非常明显的答案,但为什么我会使用这段代码获得无限循环? (laterDate1的日期晚于dateTime1,而laterDate2的日期晚于dateTime2)
while (dateTime1.CompareTo(laterDate1) <= 0)
{
DateTime dateTime2 = otherDateTime;
while (dateTime2.CompareTo(laterDate2) <= 0)
{
dateTime2.AddDays(1);
}
dateTime1.AddDays(1);
}
提前感谢您的帮助。 (我的大脑今天不工作)
答案 0 :(得分:7)
dateTime1.AddDays(1);
不会修改dateTime1
。它返回新的DateTime
实例。您必须将其分配回您的变量:
dateTime1 = dateTime1.AddDays(1);
同样适用于dateTime2.AddDays(2)
:
dateTime2 = dateTime2.AddDays(1);
btw,DateTime
是一个结构并且是不可变的,因此每个状态更改方法都会返回新实例,而不是修改您正在调用它的实例。在使用DateTime
时,您应该记住这一点。