以下代码有什么问题?日期不会在我的FOR循环中递增,因此它会进入无限循环,因为从不满足条件。我也用WHILE循环尝试了它并得到了相同的结果。
var startDate = DateTime.Today;
var endDate = new DateTime(2016, 12, 31);
for (var date = startDate; date <= endDate; date.AddDays(1))
{
// Some logic here
}
答案 0 :(得分:3)
AddDays
没有修改date
的值,它只返回DateTime
的新实例,并且您不会返回递增值。
应该是
for (var date = startDate; date <= endDate; date = date.AddDays(1))
答案 1 :(得分:2)
返回一个新的DateTime,它将指定的天数添加到 这个实例的价值。
因此,date.AddDays(1)
不会更改date
的值;它返回表示已更改值的 new DateTime
。如果您想更改date
,请执行以下操作:
date = date.AddDays(1);