2012-01-28 168 views
3

我想定義開始時間爲6pm,結束時間爲9pm。這個時間範圍(如下所示)用於日常的日程安排。我如何在for循環中實現?感謝您的回覆。c# - 如何循環時間範圍

6:00 PM 
6:30 PM 
7:00 PM 
7:30 PM 
8:00 PM 
8:30 PM 
9:00 PM 
+0

請出示一些源代碼...你有什麼你試過嗎?什麼不工作? – Yahia 2012-01-28 13:44:07

+0

你的時間範圍是如何定義的? – Oded 2012-01-28 13:45:00

+0

日期部分怎麼樣,是不是相關? – Lucero 2012-01-28 13:47:49

回答

5

,你可以同時循環,如果烏爾經歷當前的日期與像10:00時間段使用

var startTime = DateTime.Parse("2012-01-28 18:00:00"); 
var endTime = startTime.AddHours(3); 
while (startTime <= endTime) 
{ 
    System.Console.WriteLine(startTime.ToShortTimeString()); 
    startTime = startTime.AddMinutes(30); 
} 
+0

謝謝。欣賞。 – 2012-01-28 14:02:00

0

您可以嘗試使用DateTime.Now.Hour獲取小時並使用if子句。看看下面爲例

if (DateTime.Now.Hour >= 9 && DateTime.Now.Hour <= 18) { Console.WriteLine("Bonjour " + Environment.UserName); } 
        else 
        { 
         Console.WriteLine("Bonsoir " + Environment.UserName); 
        } 
+0

@yousoua bonsoir,非常感謝您的幫助。謝謝。 – 2012-01-28 14:01:02

+0

我很歡迎,我希望它是有用的:-) – youssoua 2012-01-28 19:08:53

2

簡單的例子與TimeSpan

for (int minutes = 6 * 60; minutes <= 9 * 60; minutes += 30) 
{ 
    Console.WriteLine(TimeSpan.FromMinutes(minutes)); 
} 
+0

你可能想使用'12 + 6'和'12 + 9'​​因爲時間是'PM';) – Lucero 2012-01-28 13:51:28

+0

@Lucero實際上'TimeSpan'代表一個**時間間隔**,而不是日期(即,time_所表示的_quantity與特定的一天/小時無關)。我不確定添加「中午之後」的概念與「TimeSpan」相關。 – ken2k 2012-01-28 13:56:55

+0

謝謝@ ken2k和Lucero。感謝您的幫助。 – 2012-01-28 14:04:00

0

: 00 AM至17:00:00 PM然後你可以使用下面的代碼

DateTime startTime = DateTime.Parse("10:00:00"); 

    DateTime endTime = DateTime.Parse("17:00:00"); 
while (startTime <= endTime) 
{ 
    System.Console.WriteLine(startTime.ToShortTimeString()); 
    startTime = startTime.AddMinutes(30); 
} 
+0

給你的代碼一些解釋將大大有助於你的答案是有用的。 – 2014-10-28 13:05:44

0

當您使用時間範圍(時間,而不是時間和日期的DateTime)

TimeSpan interval = new TimeSpan(0, 30, 0); 
TimeSpan beginTime = new TimeSpan(18, 00, 00); 
TimeSpan endTime = new TimeSpan(21, 00, 00); 

for(TimeSpan tsLoop = beginTime; tsLoop < endTime; tsLoop = tsLoop.Add(interval)) 
{ 

}