Я попытался найти решение, которое дает правильный номер недели для значения даты.
link1, link2, link3
следуют методы в ссылки выше, но на дату 30/12/2014, я получаю номер недели, как 53. но он падает, как 1-я неделя 2015 года.
Я попробовал следующие методы, чтобы получить номер недели года для конкретной даты.Получить номер недели для данной даты C#
private int GetWeekNumberOfTheYear() {
var currentCulture = CultureInfo.CurrentCulture;
// option 1
var weekNo = currentCulture.Calendar.GetWeekOfYear(DateTime.Now,currentCulture.DateTimeFormat.CalendarWeekRule, currentCulture.DateTimeFormat.FirstDayOfWeek);
// option 2
var weekNo = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(DateTime.Now, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
return weekNo; }
Правильно ли указан вышеописанный метод возврата 53 в качестве номера недели или он должен быть 1?
Есть ошибки в приведенном выше коде. Предложения, пожалуйста. EDIT:
Найдено много поисковых запросов указано, 29 декабря 2014 по 4 января 2015 года в 1-й недели 2015
год Так что моя путаница нынешняя неделя должна рассматриваться как 53-й недели или 1-й недели.
http://week-number.net/calendar-with-week-numbers-2014.html
http://www.epochconverter.com/date-and-time/weeknumbers-by-year.php
Почему 30 декабря * когда-либо * была первой неделей года? –
Есть 52.1775 недель в году, так что, другими словами, один или два дня на 53-й неделе. Поэтому, конечно, правильно вернуть 53. Подумайте ... почему 30-й день декабря (имеет 31 день) будет на 1-й неделе 2015 года. – Adam
@JeroenVannevel Я предполагаю, что его замешательство происходит с 30 декабря, на той же неделе, что и 1 января. –