onix-core
Version:
Onix library core
51 lines • 1.58 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DateExtensions = void 0;
const tslib_1 = require("tslib");
const toSafeInteger_1 = tslib_1.__importDefault(require("lodash/toSafeInteger"));
const DateInterval_1 = require("./DateInterval");
Date.prototype.addDays = function (days) {
let date = new Date(this.getTime());
if (!days)
return date;
date.setDate(date.getDate() + days);
return date;
};
Date.prototype.diff = function (date) {
let d1 = this;
let d2 = date;
const result = {
y: 0,
m: 0,
d: 0,
h: 0,
i: 0,
s: 0,
f: 0,
invert: false,
days: false
};
if (date.getTime() > this.getTime()) {
d1 = date;
d2 = this;
result.invert = true;
}
result.y = d1.getUTCFullYear() - d2.getFullYear();
result.m = d1.getUTCMonth() - d2.getUTCMonth();
result.d = d1.getUTCDate() - d2.getUTCDate();
result.h = d1.getUTCHours() - d2.getUTCHours();
result.i = d1.getUTCMinutes() - d2.getUTCMinutes();
result.s = d1.getUTCMinutes() - d2.getUTCSeconds();
result.f = d1.getUTCMilliseconds() - d2.getUTCMilliseconds();
result.days = toSafeInteger_1.default(Math.abs((d1.getTime() - d2.getTime()) / 86400000));
if (result.invert) {
DateInterval_1.normalize(result, d2);
}
else {
DateInterval_1.normalize(result, d1);
}
return result;
};
function DateExtensions() { }
exports.DateExtensions = DateExtensions;
//# sourceMappingURL=DateExtensions.js.map