DateTime start = new DateTime(2016, 4, 1);
DateTime end = new DateTime(2016, 4, 7);
for (DateTime dt = start; dt <= end; dt = dt.AddDays(1)) {
comboBox1.Items.Add(dt.ToString("yyyy-MM-dd"));
}
DateTime.AddDays(1) 正確處理月份/年份跨越(如 1 月 31 日 +1 天 = 2 月 1 日)。ToString("yyyy-MM-dd") 格式化輸出,避免時間部分干擾。ComboBox.Items,無需數據源綁定。public void FillDateRange(ComboBox cb, DateTime start, DateTime end, string format = "yyyy-MM-dd", int stepDays = 1) {
cb.Items.Clear();
for (DateTime dt = start; dt <= end; dt = dt.AddDays(stepDays)) {
cb.Items.Add(dt.ToString(format));
}
if (cb.Items.Count > 0) cb.SelectedIndex = 0;
}
// 調用:每週一項
FillDateRange(comboBox1, new DateTime(2016,4,1), new DateTime(2016,4,30), "yyyy-MM-dd", 7);
若日期範圍極大(如 10 年),Items 集合會變大影響性能,建議改用虛擬模式或分頁加載。