有三個下拉單:Q_Year,Q_Month,Q_Week年度綁定有:2008-2010 Q_Year
月份:1,2....12       Q_Month
周數(1-6):第一周,第二周...第六周(注:有些月份的周數不一樣)Q_Week兩個按鈕:上一周, 下一周如果我現在查的是5月分的第1周,
然後我點了“下一周”我就要讓“周數”的下拉單顯示為“第二周” 
  
點“上一周”月份就會變為4月,周數為4月的最後一個周周數改變到一定周數時改變月份,當月變改變到一定的月份時改變年份
又比如:2008年12月,如果最現在周數是“第五周”假如12月份有五個周的話,那麼我在按下一週的時候就會為2009年1月的第一周

解决方案 »

  1.   

    那在你的显示中,应是七月,第一周,  还是六月第五周呢?
    我的思路.
    定义一个  DateTime d;
    初始时, d = DateTime.Now;
    跟据该DateTime d, 算出年,月,第几周,再设置好你相应的下拉單:Q_Year,Q_Month,Q_Week 
    点上一周,则, d = d.AddDays(7);
       跟据该DateTime d, 算出年,月,第几周,再设置好你相应的下拉單:Q_Year,Q_Month,Q_Week 
    点下一周 则, d = d.AddDays(-7);
          跟据该DateTime d, 算出年,月,第几周,再设置好你相应的下拉單:Q_Year,Q_Month,Q_Week 
      

  2.   

    CSDN的高人都哪去了?這麼簡單的問題連看一下的人也不屑一顧??失望
      

  3.   

     DateTime d;
            private void init()  //初始
            {
                d = DateTime.Now;
                ShowDate(d);
               
            }        
            private int getnumweek(DateTime d)
            {
                DateTime t = d.AddDays(1 - d.Day);
                int s = (int)t.DayOfWeek;
                return (d.Day + s-1) / 7+1;
            }
            private void ShowDate(DateTime d)
            {
                this.comboBox1.SelectedIndex = d.Year - 2007; //年从2007开始
                this.comboBox2.SelectedIndex = d.Month - 1;  //月
                this.comboBox3.SelectedIndex = getnumweek(d) - 1;  //第几周
            }        private void 上一周_Click(object sender, EventArgs e)
            {
                d = d.AddDays(-7);
                ShowDate(d);
            }        private void 下一周_Click(object sender, EventArgs e)
            {
                d = d.AddDays(7);
                ShowDate(d);
            }
      

  4.   

     private void ShowDate(DateTime d)
            {
                this.comboBox1.SelectedIndex = d.Year - 2007; //年从2007开始
                this.comboBox2.SelectedIndex = d.Month - 1;  //月
                this.comboBox3.SelectedIndex = getnumweek(d) - 1;  //第几周            this.label1.Text = "";            for (int i = 0; i < 7; i++)
                {
                    DateTime t = d.AddDays(0 - d.DayOfWeek+i);
                    this.label1.Text =this.label1.Text+ t.Day.ToString() + "  ";
                }
            }用了个Label来显示, 你自己调整一下.