我正在寻找一个C#解决方案,它将允许我在日期后向后迭代。 从当前日期或提供的日期开始,我想循环使用日期,每次在循环中减去一天,持续给定的天数。它当然应该能够检测到月份发生变化或闰年等,并以MM-DD-YYYY格式返回日期。C#迭代向日期
C#迭代向日期
回答
应该是很容易:
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");
}
这看起来棒极了!谢谢。 – Baxter 2012-03-05 14:38:22
这将backwords迭代:
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"));
}
}
}
为什么在myDate单独足够时引入两个“循环变量”myDate和i? – 2012-03-05 13:56:44
我个人认为这比将它们全部插入'for()'括号更可读。 – 4imble 2012-03-05 14:14:54
可以使用DateAdd函数,可以让您添加或减去的时间间隔向/从日期和返回结果日期。 在你的情况下,间隔是“d”(天)。 请参阅here。
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"));
}
- 1. 向后迭代C++
- 2. C++迭代和反向迭代
- 3. Grails:迭代新日期()
- 4. C++向量的迭代器
- 5. 通过在Rails中的日期迭代
- 6. 在MonthCalendar控制中的迭代日期
- 7. 在循环内迭代碳日期
- 8. 用日期对象迭代每个月
- 9. VSTS迭代的日期是不正确
- 10. 在两个日期排名 - 每个日期迭代
- 11. 如何在Java中迭代开始日期以结束日期
- 12. 从x日期到结束日期开始迭代数天
- 13. 向量迭代
- 14. PHP日迭代
- 15. 期间迭代
- 16. 从头到尾迭代C++向量
- 17. 迭代字符串向量C++
- 18. 结构向量和迭代C++ 11
- 19. STL向量,迭代器和插入(C++)
- 20. 未能使用向量迭代器,C++
- 21. C++双向迭代器前缀增量
- 22. 向量迭代器不可忽略C++
- 23. C++向量迭代器函数模板
- 24. 向量中的C++ const迭代器
- 25. 迭代向前和向后
- 26. 反向迭代LinkedHashMap
- 27. C++迭代
- 28. 迭代IN C#
- 29. 树迭代C++
- 30. 将TFS2010 Sprint日期移植到TFS2012基于迭代路径的日期
只是要仔细检查 - 你在循环中做什么,或者你只是在寻找一个日期减法函数? – Paddy 2012-03-05 13:54:44
我想在循环中为每一天/日期做一些事情,我倒数。 – Baxter 2012-03-05 14:04:28