看一下这个:)
//日期格举
public enum CN_Week
{
星期五 = DayOfWeek.Friday,
星期一 = DayOfWeek.Monday,
星期六 = DayOfWeek.Saturday,
星期日 = DayOfWeek.Sunday,
星期四 = DayOfWeek.Thursday,
星期二 = DayOfWeek.Tuesday,
星期三 = DayOfWeek.Wednesday, }
/// <summary>
///得到一个月中第几周周几是哪一天 
/// </summary>
/// <param name="year">哪一年</param>
/// <param name="month">哪一个月</param>
/// <param name="number">第几周</param>
/// <param name="week">星期几</param>
/// <param name="day">输出的日期</param>
/// <returns>字符串</returns>
public string GetDateString (int year, int month, int number, CN_Week week, out DateTime day)
{
int tmpNumber = 0; if ( number == 0 )
{
number = 1;
} if ( number > 0 )
{
tmpNumber = number - 1;
}
else
{
tmpNumber = number;
} DateTime firstDay=new DateTime(year,month,1); int days= number * 7  + (int)week - (int)firstDay.DayOfWeek;

DateTime tmpDay = firstDay.AddDays(days); string result = "{0}年 {1}月 {2}周的 {3} 是 {4}"; string tmpStr = null;
if ( number > 0 )
{
tmpStr = "第" + number.ToString();
}
else
{
tmpStr =  "倒数第" + Math.Abs(number).ToString();
}

result = string.Format( result, year.ToString(), month.ToString(), tmpStr, week.ToString(), tmpDay.ToString("yyyy年MM月dd日"));
day = tmpDay; return result;
}
private void button1_Click(object sender, System.EventArgs e)
{
DateTime day;
string msg = GetDateString(int.Parse(textBox2.Text), int.Parse(this.textBox3.Text), int.Parse(this.textBox1.Text), CN_Week.星期日, out day); MessageBox.Show(msg);
MessageBox.Show(day.ToString());
}