2

我正在寻找一个 C# 解决方案,它允许我向后迭代一个日期。从当前日期或提供的日期开始,我想循环遍历给定天数的日期,每次通过循环减去一天。它当然应该能够检测到月份变化或闰年等,并以 MM-DD-YYYY 格式返回日期。

4

4 回答 4

6

应该很容易:

var givenNumberOfDays = 30;
for( DateTime day = DateTime.Now; day > DateTime.Now.AddDays( -givenNumberOfDays); day = day.AddDays(-1) )
{
  //perform your logic here
  var dateInCorrectFormat = day.ToString("MM-dd-yyyy");
}
于 2012-03-05T13:53:34.103 回答
2
public IEnumerable<DateTime> Dates(int nDays)
{
    DateTime dt = DateTime.Now;
    yield return dt;
    for(int i=0;i<nDays-1;i++)
    {
        dt = dt.AddDays(-1);
        yield return  dt;
    }

}

foreach (var dt in Dates(10))
{
     Console.WriteLine(dt.ToString("MM-dd-yyyy"));
}
于 2012-03-05T13:58:09.187 回答
1

这将迭代反语:

class Program
{
    static void Main(string[] args)
    {

        DateTime myDate = DateTime.Now;

        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine(myDate.AddDays(-i).ToString("MM-dd-yyyy"));
        }


    }
}
于 2012-03-05T13:55:03.773 回答
0

您可以使用 Dateadd 函数,该函数可让您在日期之间添加或减去时间间隔并返回结果日期。在您的情况下,间隔是“d”(天)。见这里

于 2012-03-05T13:55:27.330 回答