2009-08-18 41 views

回答

8
List<string> query = Enumerable.Range(0, 33).Select(i => 
    DateTime.Today.AddHours(9).AddMinutes(i * 15).ToString()).ToList(); 

int i = -1; 
while(DateTime.Today.AddHours(9).AddMinutes(i * 15).Hour < 17) 
    Console.WriteLine(DateTime.Today.AddHours(9).AddMinutes(15 * (++i))); 

那是當天的,如果你在一個數據庫中保存的值。

+1

非常酷,是不是!您使用LINQ的次數越多,使用foreach的次數越少。 – 2009-08-18 02:46:04

+1

我一直都在使用它,.ToList()。ForEach – 2009-08-18 02:49:27

+2

很酷,但我不會說那個清晰的代碼,尤其是Range() – 2009-08-18 09:09:21

7

DateTime有一個.AddMinutes方法。從那裏開始。 (DateTime.Now)

+1

+1用於提供簡單的解釋而不用提供答案。 – jeremyalan 2009-08-18 13:51:08

0

創建一個具有給定開始日期的外部循環。有這個循環使用AddDays添加一天到它的結束日期。

在此循環內創建一個循環,並以9AM的時間開始,並使用Silky提及的DateTime .AddMinutes方法以15分鐘的增量循環到5PM。以15分鐘爲增量,您可以將時間添加到字符串列表中。

:)

3

像下面這樣的東西應該可以做到;

for (var time = new DateTime(2000,1,1,9,0,0); time <= new DateTime(2000,1,1,17,0,0); time = time.AddMinutes(15)) 
{ 
    Console.WriteLine("{0:t}", time); 
} 
5

這裏是你的列表的意思代碼

 DateTime start = new DateTime(1900, 1, 1, 9, 0, 0); 
     DateTime end = new DateTime(1900, 1, 1, 17, 0, 0); 
     DateTime current = start; 
     while (current <= end) 
     { 
      Console.WriteLine(current.ToString("HH:mm")); 
      current = current.AddMinutes(15); 
     } 
+0

我選擇這個答案是爲了清晰。 – Shurik 2009-08-18 15:39:50

+0

然後我試圖在ASP.Net應用程序中使用它,並且出現內存不足錯誤。 – Shurik 2009-08-18 17:10:14

+0

因爲它不那麼清楚:-)你可能搞砸了循環,並使其永遠不會終止。 – 2009-08-18 17:27:32

相關問題