public static int weekofyear(DateTime dtime) { int weeknum = 0; DateTime beginDate = new DateTime(dtime.Year, 1, 1); DateTime endDate = new DateTime(dtime.Year, 12, 31); if (endDate.DayOfWeek() < 7 && (endDate.DayOfYear - dtime.DayOfYear) < 6) weeknum = 1; else weeknum = (dtime.DayOfYear - dtime.DayOfWeek() - (7 - beginDate.DayOfWeek() + 1)) / 7 + 2; return weeknum; }
/// <summary> /// Week Of Year For EF /// </summary> /// <param name="dtime"></param> /// <returns></returns> public static int WeekOfYear(this DateTime dtime) { int weeknum = 0; DateTime beginDate = new DateTime(dtime.Year, 1, 1); DateTime endDate = new DateTime(dtime.Year, 12, 31); //weeknum = (dtime.DayOfYear - dtime.DayOfWeek() - (7 - beginDate.DayOfWeek() + 1)) / 7 + 2; if (dtime.DayOfYear - beginDate.DayOfYear < 7) weeknum = 1; else weeknum = (dtime.DayOfYear - dtime.DayOfWeek() - (7 - beginDate.DayOfWeek() + 1)) / 7 + 2; return weeknum; }