@idris-maps/yyyy-mm-dd
Version:
A date library dealing only with days in the YYYY-MM-DD format
36 lines (35 loc) • 1.29 kB
JavaScript
;
var __spreadArrays = (this && this.__spreadArrays) || function () {
for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
for (var r = Array(s), k = 0, i = 0; i < il; i++)
for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
r[k] = a[j];
return r;
};
Object.defineProperty(exports, "__esModule", { value: true });
var toYYYYMM = function (day) {
var _a = day.split('-'), yyyy = _a[0], mm = _a[1];
return yyyy + "-" + mm;
};
var pad = function (n) { return n < 10 ? "0" + n : String(n); };
var addMonth = function (yyyymm) {
var _a = yyyymm.split('-'), yyyy = _a[0], mm = _a[1];
var m = Number(mm);
var y = Number(yyyy);
return m === 12
? y + 1 + "-01"
: yyyy + "-" + pad(m + 1);
};
var _monthsInRange = function (_a) {
var start = _a.start, end = _a.end;
var lastMonth = toYYYYMM(end);
var loop = function (day, months) {
var next = addMonth(day);
if (toYYYYMM(next) === lastMonth) {
return __spreadArrays(months, [next]);
}
return loop(next, __spreadArrays(months, [next]));
};
return loop(start, [start]).map(toYYYYMM);
};
exports.default = _monthsInRange;