d3.timeInterval(floor, offset[, count[, field]])
Constructs a new custom interval given the specified floor and offset functions and an optional count function.
The floor function takes a single date as an argument and rounds it down to the nearest interval boundary.
The offset function takes a date and an integer step as arguments and advances the specified date by the specified number of boundaries; the step may be positive, negative or zero.
The optional count function takes a start date a