你好,我有我的Windows组合框形成应用C#填充组合框形成应用C#与时间间隔(小时:分钟)
我怎么能填补它与具体的开始时间(例如12时间: 00)到特定的结束时间(例如14:00)加入20分钟,就像在下面的图片:
你好,我有我的Windows组合框形成应用C#填充组合框形成应用C#与时间间隔(小时:分钟)
我怎么能填补它与具体的开始时间(例如12时间: 00)到特定的结束时间(例如14:00)加入20分钟,就像在下面的图片:
下面是使用一个简单的循环,而做到这一点的一种方法:
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);
}
谢谢你的方法也可以工作<3 – HasanHajjar
兄弟有没有办法像这样填充它,12:00然后13:00然后14:00 ... 16 :00 – HasanHajjar
当然,只需使用'AddHours(1)'而不是'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");
如果你希望你的时间作为日期时间的情况下,使用这个循环:
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
我定义firstHour
和lastHour
为常数,以保持简单的例子,你可以把它们变成变量,参数FO一种方法,或任何对你更有用的方法。
非常感谢,我的两种方法都适用于我<3 – HasanHajjar
问题出在哪里? –
WPF或Windows窗体?...你尝试过什么吗? – NicoRiff
我不知道如何填充它 – HasanHajjar