title: System.Globalization.Calendar.GetWeekOfYear() returns odd results
body: <p>I'm in the middle of calculating week numbers for dates, but the <code>System.Globalization.Calendar</code> is returning odd results for (amongst other years) December 31st of year 2007 and 2012.</p>
  
  <pre><code>Calendar calendar = CultureInfo.InvariantCulture.Calendar;
  var date = new DateTime(2007, 12, 29);
  for (int i = 0; i &lt; 5; i++)
  {
      int w = calendar.GetWeekOfYear(date, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday);
      Console.WriteLine("{0}\t{1}", date.ToString("dd.MM.yyyy"), w);
      date = date.AddDays(1);
  }
  </code></pre>
  
  <p><strong>Results</strong></p>
  
  <pre><code>29.12.2007      52
  30.12.2007      52
  31.12.2007      53 &lt;--
  01.01.2008       1
  02.01.2008       1
  
  29.12.2012      52
  30.12.2012      52
  31.12.2012      53 &lt;--
  01.01.2013       1
  02.01.2013       1
  </code></pre>
  
  <p>As far as I understand, there shouldn't be a week 53 in year 2007 and 2012, but the days should be included in week 1. Is there a way to change this behaviour in the <code>Calendar</code>?</p>