var cultureInfo = CultureInfo.CurrentCulture;
var calendar = cultureInfo.Calendar;
var calendarWeekRule = cultureInfo.DateTimeFormat.CalendarWeekRule;
var firstDayOfWeek = cultureInfo.DateTimeFormat.FirstDayOfWeek;
var lastDayOfWeek = cultureInfo.LCID == 1033 //En-us
? DayOfWeek.Saturday
: DayOfWeek.Sunday;
var lastDayOfYear = new DateTime(date.Year, 12, 31);
var weekNumber = calendar.GetWeekOfYear(date, calendarWeekRule, firstDayOfWeek);
//Check if this is the last week in the year and it doesn`t occupy the whole week
return weekNumber == 53 && lastDayOfYear.DayOfWeek != lastDayOfWeek
? 1
: weekNumber;
Он хорошо работает как для культур США, так и для России. ИСО 8601 также будет правильным, потому что русская неделя начинается в понедельник.
Если у вас есть ассоциация ownTo , ваша таблица «prox» должна иметь поле «proxylink_id».
Если вы не хотите, чтобы ассоциативные модели объединялись, вы должны установить параметр « рекурсивный » на -1
.