我有这个循环,它的目的是循环遍历一系列日期并执行一些逻辑以自动将条目添加到数据库中。问题是递增部分 date.AddDays(1.0) 不起作用,并且始终是相同的结果,从而导致无限循环。有什么见解吗?
for (DateTime date = DateTime.Now; futureDate.CompareTo(date) > 0; date.AddDays(1.0))
{
// logic here
}
最佳答案
DateTime.AddDays
返回一个新实例而不修改 date
.目前你正在丢弃这个新实例。相反,您需要执行以下操作:
for (DateTime date = DateTime.Now; futureDate.CompareTo(date) > 0; date = date.AddDays(1.0))
{
// logic here
}
另外,我不确定你为什么调用 CompareTo
什么时候可以使用 <
运算符(operator)。我分不清是不是CompareTo(date) > 0
暂时不考虑是正确的,而 <
的意图运算符很明显:
for (DateTime date = DateTime.Now; date < futureDate; date = date.AddDays(1.0))
{
// logic here
}
关于c# - 在 For 循环中使用 DateTime,递增日期不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3461220/