none
谁能帮我看看这两个方法有没有冗余,有的话如何改进?请帖出代码 RRS feed

  • 问题

  •         /// <summary>
            /// 控件ddlDateTime,时间段绑定
            /// </summary>
            private void ddlDateTimeRangeBind()
            {
                ddlDateTime.Items.Clear();
                ListItem li = null;
    
                li = new ListItem();
                li.Text = "自定义";
                ddlDateTime.Items.Add(li);
    
                DateTime dtStart = new DateTime(DateTime.Now.Year - 1, 12, 1);
                DateTime dtEnd = new DateTime(DateTime.Now.Year - 1, 12, 31);
                li = new ListItem();
                li.Text = "去年12月份";
                li.Value = dtStart.ToString() + "|" + dtEnd.ToString();
                ddlDateTime.Items.Add(li);
    
                dtStart = new DateTime(DateTime.Now.Year - 1, 10, 1);
                dtEnd = new DateTime(DateTime.Now.Year - 1, 12, 31);
                li = new ListItem();
                li.Text = "去年4季度";
                li.Value = dtStart.ToString() + "|" + dtEnd.ToString();
                ddlDateTime.Items.Add(li);
    
                dtStart = new DateTime(DateTime.Now.Year - 1, 7, 1);
                dtEnd = new DateTime(DateTime.Now.Year - 1, 12, 31);
                li = new ListItem();
                li.Text = "去年下半年";
                li.Value = dtStart.ToString() + "|" + dtEnd.ToString();
                ddlDateTime.Items.Add(li);
    
                dtStart = new DateTime(DateTime.Now.Year - 1, 1, 1);
                dtEnd = new DateTime(DateTime.Now.Year - 1, 12, 31);
                li = new ListItem();
                li.Text = "去年全年";
                li.Value = dtStart.ToString() + "|" + dtEnd.ToString();
                ddlDateTime.Items.Add(li);
    
                for (int i = 1; i < DateTime.Now.Month; i++)
                {
                    dtStart = new DateTime(DateTime.Now.Year, i, 1);
                    dtEnd = DateTimeDatabase.GetLastDayOfSomeMonthOfThisYear(i);
                    li = new ListItem();
                    li.Text = i + "月份";
                    li.Value = dtStart.ToString() + "|" + dtEnd.ToString();
                    ddlDateTime.Items.Add(li);
    
                    if (i == 3)
                    {
                        dtStart = new DateTime(DateTime.Now.Year, 1, 1);
                        dtEnd = new DateTime(DateTime.Now.Year, 3, 31);
                        li = new ListItem();
                        li.Text = "1季度";
                        li.Value = dtStart.ToString() + "|" + dtEnd.ToString();
                        ddlDateTime.Items.Add(li);
                    }
                    else if (i == 6)
                    {
                        dtStart = new DateTime(DateTime.Now.Year, 4, 1);
                        dtEnd = new DateTime(DateTime.Now.Year, 6, 30);
                        li = new ListItem();
                        li.Text = "2季度";
                        li.Value = dtStart.ToString() + "|" + dtEnd.ToString();
                        ddlDateTime.Items.Add(li);
                    }
                    else if (i == 9)
                    {
                        dtStart = new DateTime(DateTime.Now.Year, 7, 1);
                        dtEnd = new DateTime(DateTime.Now.Year, 9, 30);
                        li = new ListItem();
                        li.Text = "3季度";
                        li.Value = dtStart.ToString() + "|" + dtEnd.ToString();
                        ddlDateTime.Items.Add(li);
                    }
                    else if (i == 12)
                    {
                        dtStart = new DateTime(DateTime.Now.Year, 10, 1);
                        dtEnd = new DateTime(DateTime.Now.Year, 12, 31);
                        li = new ListItem();
                        li.Text = "4季度";
                        li.Value = dtStart.ToString() + "|" + dtEnd.ToString();
                        ddlDateTime.Items.Add(li);
                    }
                }
    
                dtStart = DateTimeDatabase.GetFirstDayOfQuarterOfSomeMonth(DateTime.Now.Month);
                dtEnd = DateTime.Now.Date;
                li = new ListItem();
                li.Text = "本季";
                li.Value = dtStart.ToString() + "|" + dtEnd.ToString();
                ddlDateTime.Items.Add(li);
    
                dtStart = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1);
                dtEnd = DateTime.Now.Date;
                li = new ListItem();
                li.Text = "本月";
                li.Value = dtStart.ToString() + "|" + dtEnd.ToString();
                ddlDateTime.Items.Add(li);
            }
    
            /// <summary>
            /// 控件ddlDateTime,时间点绑定
            /// </summary>
            private void ddlDateTimePointBind()
            {
                ddlDateTime.Items.Clear();
                ListItem li = null;
    
                li = new ListItem();
                li.Text = "自定义";
                ddlDateTime.Items.Add(li);
    
                DateTime dt = new DateTime(DateTime.Now.Year - 1, 12, 31);
                li = new ListItem();
                li.Text = dt.ToString("yyyy年MM月dd日");
                li.Value = dt.ToString();
                ddlDateTime.Items.Add(li);
    
                for (int i = 1; i < DateTime.Now.Month; i++)
                {
                    dt = DateTimeDatabase.GetLastDayOfSomeMonthOfThisYear(i);
                    li = new ListItem();
                    li.Text = dt.ToString("yyyy年MM月dd日");
                    li.Value = dt.ToShortDateString();
                    ddlDateTime.Items.Add(li);
                }
    
                li = new ListItem();
                li.Text = DateTime.Now.ToString("yyyy年MM月dd日");
                li.Value = DateTime.Now.ToShortDateString();
                ddlDateTime.Items.Add(li);
                li.Selected = true;
            }
    
    2009年11月21日 2:07

答案

  • 你好!

     使用一个公用的方法来添加你的项,这样会更好一些。


    知识改变命运,奋斗成就人生!
    • 已标记为答案 KeFang Chen 2009年11月23日 5:30
    • 取消答案标记 m s 2009年11月23日 6:36
    • 已标记为答案 m s 2009年11月25日 1:26
    2009年11月21日 2:31
    版主