import “day”; import “interval”; import “time”; import “year”;

d3_time_daySymbols.forEach(function(day, i) {

day = day.toLowerCase();
i = 7 - i;

var interval = d3.time[day] = d3_time_interval(function(date) {
  (date = d3.time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);
  return date;
}, function(date, offset) {
  date.setDate(date.getDate() + Math.floor(offset) * 7);
}, function(date) {
  var day = d3.time.year(date).getDay();
  return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);
});

d3.time[day + "s"] = interval.range;
d3.time[day + "s"].utc = interval.utc.range;

d3.time[day + "OfYear"] = function(date) {
  var day = d3.time.year(date).getDay();
  return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7);
};

});

d3.time.week = d3.time.sunday; d3.time.weeks = d3.time.sunday.range; d3.time.weeks.utc = d3.time.sunday.utc.range; d3.time.weekOfYear = d3.time.sundayOfYear;