每月和每天填充

时间:2009-09-16 10:49:16

标签: c#

我正在填写一个带有月份名称的组合框,如下所示:`

        var engCulture = new CultureInfo("en-US");            
        cmbAmCul.Items.AddRange(engCulture.DateTimeFormat.MonthNames);

什么是正确的方法:

  1. 删除后的空白条目 12个月的名字。
  2. 填充另一个     组合框与日(1-31 || 1-28 ||     1-30)根据月份     选择?

3 个答案:

答案 0 :(得分:8)

对于第一部分,您可以使用linq查询...

var engCulture = new CultureInfo("en-US");            
cmbAmCul.Items.AddRange(from m in engCulture.DateTimeFormat.MonthNames 
                        where !String.IsNullOrEmpty(m) 
                        select m);

DateTimeInfo类支持13个月的日历,这就是发生这种情况的原因。

对于第二部分,我会选择类似......

for (int i = 1; i <= DateTime.DaysInMonth(year, month); i++) {
    cmbDay.Items.Add(i.ToString());
}

显然会根据您选择的值填充年/月变量。

答案 1 :(得分:3)

  1. 使用String.Trim()从开头删除空格&amp;字符串结尾
  2. 使用DateTime.DaysInMonth(int year, int month)的返回值填充您的日期组合框
  3. 您还可以使用标准控件中的DateTime选择器,还是不适合您?

答案 2 :(得分:0)

您没有指定要构建的内容(ASP.NET或Winforms等),但您可以使用Calendar控件而不是下拉列表来改善用户体验。可能会减少点击次数和更少的代码。