最近要用到这2个方法,网上没找到就自己写了一个
//获取所在年的第几周
private string WeekOfYear(string date)
{
DateTime dt = DateTime.Parse(date);
System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar();
int weekOfYear = gc.GetWeekOfYear(dt, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday);
return dt.Year+"-" + weekOfYear.ToString().PadLeft(2, '0');
}
/// <summary>
/// 周数转日期
/// </summary>
/// <param name="strWeek">2019-01</param>
/// <returns></returns>
private DateTime[] WeekToDate(string strWeek)
{
string year = strWeek.Substring(0, 4);
int week = int.Parse(strWeek.Substring(5, 2));
//本年元旦是周几
int dw=(int) DateTime.Parse(year + "-01-01").DayOfWeek ;
int monDays = (week-1) * 7 - (int)dw+1; //所在周一距离元旦天数
monDays = monDays < 0 ? 0 : monDays;
int sunDays = (week) * 7 - (int)dw; //所在周日距离元旦天数
DateTime start = DateTime.Parse(year + "-01-01").AddDays(monDays);
DateTime end = DateTime.Parse(year + "-01-01").AddDays(sunDays);
return new DateTime[] { start, end };
}