2012-01-28 18 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)) 
{ 

}