iso8601-localizer
Version:
Simple to use getTimezoneOffset based ISO8601 localizer with source written in Typescript
61 lines (57 loc) • 2 kB
JavaScript
var classes;
(function (classes) {
var Ranger = (function () {
function Ranger() {
}
Ranger.prototype.getRange = function (start, end) {
/*
There are 6 parameters combination:
1. (5, 7)
2. (7, 5)
3. (7, 7)
4. (-5, -7)
5. (-7, -5)
6. (-7, -7)
7. (5, -7)
8. (-7, 5)
This function will return an ordered range for the parameters, for example:
(5, 7) or (7, 5) => [5,6,7]
(-7, 5) or (5, -7) => [-7,-6,-5,-4,-3,-2,-1,0,1,2,4,5]
(-7, -7) => [-7]
(5, 5) => [5]
*/
var notBothNegativeTmp = null, bothNegativeTmp = null, bothNegativeFlag = false, retArray = [];
if (start < 0 && end < 0) {
start = Math.abs(start);
end = Math.abs(end);
bothNegativeFlag = true;
// For cases like: (-7, -5)
if (start > end) {
bothNegativeTmp = end;
end = start;
start = bothNegativeTmp;
} // Else, for cases like: (-5, -7), (-7, -7)
}
else {
// For cases like: (7, 5), (5, -7)
if (start > end) {
notBothNegativeTmp = end;
end = start;
start = notBothNegativeTmp;
} // Else, for cases like: (5, 7), (7, 7), (7, 7), (-7, 5)
}
for (var i = start; i <= end; i++) {
if (bothNegativeFlag) {
retArray.push(-i);
}
else {
retArray.push(i);
}
}
return retArray;
};
return Ranger;
})();
classes.Ranger = Ranger;
})(classes || (classes = {}));
module.exports = classes;