我正在尋找一個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