1
A
回答
3
上捎帶關閉davecoulter的,如果你需要要在您的DateTime對象的所有應用程序中執行此操作,您可能需要爲DateTime對象定義一個Extenion方法。
void Main()
{
DateTime today = new DateTime(2011, 8, 29);
DateTime nextWeek = new DateTime(2011, 9, 4);
foreach (DateTime dateTime in today.ListAllDates(nextWeek))
{
Console.WriteLine(dateTime);
}
Console.ReadLine();
}
public static class DateTimeExtenions
{
public static IEnumerable<DateTime> ListAllDates(this DateTime lhs, DateTime futureDate)
{
List<DateTime> dateRange = new List<DateTime>();
TimeSpan difference = (futureDate - lhs);
for(int i = 0; i <= difference.Days; i++)
{
dateRange.Add(lhs.AddDays(i));
}
return dateRange;
}
}
您可以直接複製到LinqPad並運行程序來測試它。
+1
不錯的一個!既然你返回一個'IEnumerable <...>',我建議把它作爲'iterator'方法,並簡單地'產生返回lhs.AddDays(i);'。這樣,你根本不需要'dateRange',結果就會被懶惰地評估。 (當你不需要遍歷整個範圍時可能很有用。) – Heinzi
1
創建從兩個日期時間日期時間新的日期,以確保其他們在一天的開始。然後運行一個for循環,從starttime.Ticks運行到endtime.Ticks並按TimeSpan.TicksPerDay遞增,並創建一個新的DateTime,並將其添加到每個值的列表中。下面的例子不包括結束日期,但你可以很容易地解決這個問題。
var start= new DateTime(2009,01,01).Ticks;
var end= new DateTime(2009,01,10).Ticks;
List<DateTime> dates = new List<DateTime>();
for (var i = start; i < end; i+=TimeSpan.TicksPerDay) {
dates.Add(new DateTime(i));
}
或者你也可以在它們之間循環並調用AddDays方法。
4
下面的代碼片段,以獲得包括起始和結束日期之間的所有天:
DateTime today = new DateTime(2011, 8, 29);
DateTime nextWeek = new DateTime(2011, 9, 4);
TimeSpan difference = nextWeek - today;
List<DateTime> days = new List<DateTime>();
for (int i = 0; i <= difference.Days; i++)
{
days.Add(today.AddDays(i));
}
foreach (var dateTime in days)
{
Console.WriteLine(dateTime);
}
Console.ReadLine();
輸出:
8/29/2011 12:00:00 AM
8/30/2011 12:00:00 AM
8/31/2011 12:00:00 AM
9/1/2011 12:00:00 AM
9/2/2011 12:00:00 AM
9/3/2011 12:00:00 AM
9/4/2011 12:00:00 AM
3
using System;
using System.Linq;
var startDate = new DateTime(2011, 9, 1);
var days = Enumerable.Range(0, 10).Select(n => startDate.AddDays(n));
相關問題
- 1. 如何從子範圍內更新父範圍中的模型?
- 2. 實體框架:如何計算其他日期範圍內的日期範圍
- 3. 如何查詢日期範圍A或日期範圍B內的記錄
- 4. 檢查的日期範圍的日期範圍內
- 5. 日期範圍內的打印日期
- 6. 日期範圍內的VLOOKUP日期
- 7. 如何根據日期範圍內的日期選擇子字符串
- 8. 如果與日期範圍關聯的日期落在日期範圍內,則平均值範圍
- 9. 不在日期範圍內
- 10. SUMIFS在日期範圍內
- 11. 日期範圍的日期範圍之間的任何日期
- 12. 在另一個日期範圍內總結日期範圍
- 13. 如何獲取給定日期範圍內的日期列表?
- 14. 如何選擇日期範圍內的隨機日期AS3
- 15. 如何在每天的日期範圍內查找日期範圍內的記錄
- 16. 如何獲得一個月範圍內指定日期的範圍
- 17. Rspec讓範圍
- 18. 選擇值的範圍日期值的範圍內
- 19. 在多個日期範圍內的開始日期和結束日期範圍
- 20. 如何檢索我的範圍內0.5公里內的帖子?
- 21. 如何讓DataTable的內容在範圍的末尾生存?
- 22. 在日期範圍範圍
- 23. 如何查找PHP中另一個日期範圍內的日期範圍內有多少天?
- 24. 如何讓我的ID變量在全球範圍內?
- 25. 如何讓JS eval()在QML元素的父範圍內運行
- 26. 如何讓我綁定到模板向鏈路內的範圍
- 27. 如何讓我的功能可見在全球範圍內
- 28. 如何在父時間範圍內獲得子時間範圍的開始日期
- 29. 如何在默認日期範圍內給日期選擇器?
- 30. Neo4j:給定日期範圍內如何查詢中間日期
在這裏很好的回答:http://stackoverflow.com/questions/1847580/how-do-i-loop-through-a-date-range – RiddareRalf
是的,謝謝。不錯的 –