It Calculates “Outersections” of ranges.
Given a list of ranges:
it calculates the "Outersection" intervals (Hatched area, with no intersections between the A,B,C date ranges).
$ npm install --save outersections
const outersections = require('outersections');
let ranges = [
{begin: new Date(2017, 0, 1), end: new Date(2017, 0, 10)},
{begin: new Date(2017, 0, 20), end: new Date(2017, 0, 30)},
{begin: new Date(2017, 0, 1), end: new Date(2017, 0, 7)},
{begin: new Date(2017, 0, 25), end: new Date(2017, 1, 5)}
];
outersections(ranges);
//=> [{ begin: Date(2017, 0, 10), end: Date(2017, 0, 20) }]
const ranges = [
{begin: 1, end: 10},
{begin: 20, end: 30},
{begin: 1, end: 7},
{begin: 25, end: 35}
];
outersections(ranges);
//=> [{begin: 10, end: 20}]
Type: Array
Array of ranges
MIT © Danilo Sampaio