intervalDivideEquallyUnix
Signature
Section titled “Signature”intervalDivideEquallyUnix(start: string | number, end: string | number, n: number): { start: number; end: number; }[]import { intervalDivideEquallyUnix } from "@northguild/gmt/unix/interval";Split a Unix epoch interval into n equal-length sub-intervals.
- Returns an array of
n{ start, end }records that tile the original interval, each record’sendequal to the next record’sstart. - Boundaries are computed as plain numeric arithmetic on the epoch values — no timeZone is involved, so the split is exact whenever the total divides evenly by
n. n === 1returns the original interval unchanged, as a single-element array.- A zero-length interval (
start === end) returnsnidentical zero-length sub-intervals. - Returns
[]whennis not a positive integer, or on invalid input (non-finite/non-integer start/end,start > end).
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
start |
string | number |
Unix epoch value (seconds or milliseconds) — interval start |
end |
string | number |
Unix epoch value (seconds or milliseconds) — interval end |
n |
number |
number of equal sub-intervals to produce (positive integer) |
Returns
Section titled “Returns”array of n { start, end } records, or [] on invalid input
Examples
Section titled “Examples”intervalDivideEquallyUnix(0, 90000000, 3) // [{ start: 0, end: 30000000 }, { start: 30000000, end: 60000000 }, { start: 60000000, end: 90000000 }]intervalDivideEquallyUnix(0, 100000000, 3) // [{ start: 0, end: 33333333 }, { start: 33333333, end: 66666667 }, { start: 66666667, end: 100000000 }]intervalDivideEquallyUnix(0, 90000000, 1) // [{ start: 0, end: 90000000 }]intervalDivideEquallyUnix(0, 90000000, 0) // []intervalDivideEquallyUnix(NaN, 90000000, 3) // []