While循环返回相同的日期值,即使每次都添加了一天- c#

本文关键字:添加 一天 返回 循环 日期 While | 更新日期: 2023-09-27 17:51:22

我是不是做了什么很傻的事情,fromDate的值总是保持传递的值

public List<String> GetDates(DateTime fromDate, DateTime toDate)
{
    List<String> Dates = new List<String>();
    while (fromDate <= toDate)
    {
        Dates.Add(fromDate.ToShortDateString());
        fromDate.AddDays(1);
    }
    return Dates;
}

我不明白为什么,请告诉我。

While循环返回相同的日期值,即使每次都添加了一天- c#

您需要分配给fromDate, AddDays()不会修改调用它的实例:

fromDate = fromDate.AddDays(1);

如果您查看.AddDays的方法描述,您将看到它实际上返回一个datetime对象,它实际上并没有修改AddDays被调用的变量。

你可以通过:

fromDate = fromDate.AddDays(1);

查看更多信息:

https://msdn.microsoft.com/en-us/library/system.datetime.adddays%28v=vs.110%29.aspx

AddDays的MSDN帮助有以下值得注意的句子,在页面末尾的"备注"下:

该方法不改变DateTime的值。相反,它返回一个新的DateTime,它的值是这个操作的结果。

只需存储返回的DateTime对象,就可以了。

fromDate = fromDate.AddDays(1);