我正在寻找一个C#解决方案,它允许我在日期上向后迭代。 从当前日期或提供日期开始,我想循环显示每天减去一天的日期,通过循环一段给定的天数。它当然应该能够检测月份何时发生变化或者是闰年等,并以MM-DD-YYYY格式返回日期。
答案 0 :(得分:5)
应该很容易:
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");
}
答案 1 :(得分: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"));
}
答案 2 :(得分: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"));
}
}
}
答案 3 :(得分:0)
您可以使用Dateadd功能,该功能可以添加或减去日期之间的时间间隔并返回结果日期。 在您的情况下,间隔是“d”(天)。 见here。