有三個下拉單: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,2....12 Q_Month
周數(1-6):第一周,第二周...第六周(注:有些月份的周數不一樣)Q_Week兩個按鈕:上一周, 下一周如果我現在查的是5月分的第1周,
然後我點了“下一周”我就要讓“周數”的下拉單顯示為“第二周”
點“上一周”月份就會變為4月,周數為4月的最後一個周周數改變到一定周數時改變月份,當月變改變到一定的月份時改變年份
又比如:2008年12月,如果最現在周數是“第五周”假如12月份有五個周的話,那麼我在按下一週的時候就會為2009年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
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);
}
{
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来显示, 你自己调整一下.