- /* Convert week of year to date range. */
- if (! $week_offset) $week_offset = $row->getWeek() - 1;
- else $week = $row->getWeek() - $week_offset;
+ /*
+ Convert week of year to date range.
+ Beware that week 201401 comes after 201352.
+ */
+ $yearweek = $row->getWeek();
+ if (! $week_offset) {
+ $year_offset = substr($yearweek, 0, 4);
+ $week_offset = substr($yearweek, 4, 2) - 1;
+ }
+ else {
+ $y = substr($yearweek, 0, 4);
+ $w = substr($yearweek, 4, 2);
+ $week = (($y - $year_offset) * 52) + ($w - $week_offset);
+ }