c# - 在 For 循环中使用 DateTime,递增日期不起作用

标签 c# asp.net datetime for-loop

我有这个循环,它的目的是循环遍历一系列日期并执行一些逻辑以自动将条目添加到数据库中。问题是递增部分 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/

相关文章:

c# - 回发后将要上传的文件分配给 fileUpload 控件

asp.net - 服务器响应为 : 5. 7.57 SMTP - Office 365

c# - 如何从非实体类型的sql查询中检索多列?

c# - 从代码隐藏更改 IFrames InnerHtml

c# - 列表需要类型参数

javascript - 如何使用按钮调用javascript函数和代码

javascript - 如何将当前日期转换为数字格式?

c# - 最佳实践 : new DateTime() vs DateTime. Parse()

java - Java中如何从字符串格式中获取年、月、日

c# - 克隆 WPF 控件和对象层次结构