繁体   English   中英

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

[英]fill combobox in windows form application C# with time interval (hours: minutes)

你好,我在Windows窗体应用程序C#中有一个组合框

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

用时间填充组合框

这是使用简单的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);
}

我假设您希望在头几个小时和最后几个小时都具有一定的灵活性,但是您可以确保间隔始终为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定义为常量,以使示例保持简单,您可以将它们转换为变量,方法的参数或对您更有用的参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM