时间-周

取某天在本年的第几周

var date = DateTime.Today;

GregorianCalendar gc = new GregorianCalendar(GregorianCalendarTypes.USEnglish);
int weekOfYear = gc.GetWeekOfYear(date, CalendarWeekRule.FirstDay, DayOfWeek.Monday);

取某天所在周的周一

private DateTime getMonday(DateTime date)
{
    DateTime temp = new DateTime(date.Year, date.Month, date.Day);
    int count = date.DayOfWeek - DayOfWeek.Monday;
    if (count == -1) count = 6;
 
    return temp.AddDays(-count);
}

取某天所在周的周日

private DateTime getSunday(DateTime date)
{
    DateTime temp = new DateTime(date.Year, date.Month, date.Day);
    int count = now.DayOfWeek - DayOfWeek.Sunday;
    if (count != 0) count = 7 - count;
 
    return temp.AddDays(count);
}