/// /// 获取指定月份指定周数的开始日期 /// /// 年份 /// 月份 /// 周数 /// private DateTime GetStartDayOfWeeks(int year, int month, int index) { if (year < 1600 || year > 9999) { MessageBox.Show("年份超限"); return DateTime .MinValue ; } if (month < 0 || month > 12) { MessageBox.Show("月份错误"); return DateTime .MinValue ; } if (index < 1) { MessageBox.Show("周数错误"); return DateTime.MinValue; } DateTime startMonth = new DateTime(year, month, 1); //该月第一天 int dayOfWeek = 7; if (Convert.ToInt32(startMonth.DayOfWeek.ToString("d")) > 0) dayOfWeek = Convert.ToInt32(startMonth.DayOfWeek.ToString("d")); //该月第一天为星期几 DateTime startWeek = startMonth.AddDays(1 - dayOfWeek); //该月第一周开始日期 //DateTime startDayOfWeeks = startWeek.AddDays((index - 1) * 7); //index周的起始日期 DateTime startDayOfWeeks = startWeek.AddDays(index * 7); //index周的起始日期 if ((startDayOfWeeks - startMonth.AddMonths(1)).Days > 0) //startDayOfWeeks不在该月范围内 { MessageBox.Show("输入周数大于本月最大周数"); return DateTime.MinValue; } return startDayOfWeeks; } //csharp/5603