UNPKG

iso8601-localizer

Version:

Simple to use getTimezoneOffset based ISO8601 localizer with source written in Typescript

89 lines (53 loc) 1.45 kB
module classes { export class Ranger { public getRange(start: number, end: number): Array<number> { /* 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: boolean = false, retArray: Array<number> = []; 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(let i = start; i <= end; i++) { if(bothNegativeFlag) { retArray.push(-i); } else { retArray.push(i); } } return retArray; } } } export = classes;