在Windows窗体应用程序C#中填充组合框,时间间隔(小时:分钟)

时间:2017-05-03 14:30:27

标签: c# visual-studio combobox

你好我的Windows窗体应用程序C#

中有一个组合框

如何添加20分钟,从特定开始时间(例如12:00)到特定结束时间(例如14:00)填充时间,如下图所示:

fill combobox with time

2 个答案:

答案 0 :(得分:1)

以下是使用简单while循环执行此操作的一种方法:

var item = DateTime.Today.AddHours(14); // 14:00:00
while(item <= DateTime.Today.AddHours(16)) // 16:00:00
{
    cmb.Items.Add(item.TimeOfDay.ToString(@"hh\:mm"));
    item = item.AddMinutes(20);
}

答案 1 :(得分:0)

我假设您在第一个和最后一个小时内需要一些灵活性,但您确定您的间隔时间总是20分钟。

如果您可以将时间表示为简单字符串,则可以使用两个嵌套循环:

const int firstHour = 12;
const int lastHour = 14;
for (var hour = firstHour; hour < lastHour; hour++)
{
    for (var minute = 0; minute <= 40; minute += 20)
    {
        comboBox.Items.Add($"{hour}:{minute:00}");
    }
}
comboBox.Items.Add($"{lastHour}:00");

如果您希望将您的时间作为DateTime的实例,请使用此循环:

const int firstHour = 12;
const int lastHour = 14;
var time = new DateTime(2000, 1, 1, firstHour, 0, 0); //or any other suitable year,month,day
while (time.Hour < lastHour)
{
    comboBox.Items.Add(time);
    time = time.AddMinutes(20);
}
comboBox.Items.Add(new DateTime(time.Year, time.Month, time.Day, lastHour, 0, 0));
comboBox.FormatString = "HH:mm"; //to prevent the date from being displayed

我将firstHourlastHour定义为常量以保持示例简单,您可以将它们转换为变量,方法的参数或对您更有用的任何内容。