c# - 如何遍历时间范围

时间:2012-01-28 13:42:24

标签: c# asp.net datetime for-loop

我想将开始时间定义为下午6点,结束时间定义为晚上9点。这个时间范围(如下所示)用于日常计划。如何在for循环中实现?感谢任何回复。

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

5 个答案:

答案 0 :(得分:5)

你可以使用while循环

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);
}

答案 1 :(得分:2)

TimeSpan的简单示例:

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

答案 2 :(得分: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);
                    }

答案 3 :(得分:0)

如果您通过当前日期的时间范围从上午10:00:00到下午17:00:00,那么您可以使用以下代码

 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);
}

答案 4 :(得分:0)

使用TimeSpan(时间而不是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))
{

}