interval.range() with option to include the stop interval boundary
If you have a begin and an end date and want to loop through every day including the end date with d3.utcDay.range(), my understanding is I would call:
d3.utcDay.range(new Date("2022-03-08"), nextDay(new Date("2022-04-13")))
with
function nextDay(currentDay) {
let nextDay = new Date(currentDay);
nextDay.setDate(currentDay.getDate() + 1);
return nextDay;
}
If interval range would include an option exclusive which defaults to true, but can be set to false, then one could get the desired result easier.
See https://github.com/d3/d3-array/issues/90 and https://github.com/d3/d3-array/pull/150 — although in the case of dates it's hard to call that linspace, since days/weeks/months don't always have the same duration.
What I am thinking of is using d3.utcDay.range() e.g. to get a list of days for school breaks or start and end travel dates. For both I want to include the last day