@onesy/date
Version:
Time and date utils library
43 lines (42 loc) • 1.87 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const OnesyDate_1 = __importDefault(require("./OnesyDate"));
// circular dependency issue fix
function add(value, unit, onesyDate_ = OnesyDate_1.default.onesyDate) {
if (onesyDate_ &&
onesyDate_.valid) {
const onesyDate = new OnesyDate_1.default(onesyDate_);
switch (unit) {
case 'day':
return new OnesyDate_1.default(onesyDate.value.setDate(onesyDate.day + value));
}
}
}
function endOf(onesyDate_ = OnesyDate_1.default.onesyDate, unit = 'day') {
if (onesyDate_ &&
onesyDate_.valid) {
const onesyDate = new OnesyDate_1.default(onesyDate_);
switch (unit) {
case 'second':
return new OnesyDate_1.default(onesyDate.value.setMilliseconds(999));
case 'minute':
return new OnesyDate_1.default(onesyDate.value.setSeconds(59, 999));
case 'hour':
return new OnesyDate_1.default(onesyDate.value.setMinutes(59, 59, 999));
case 'day':
return new OnesyDate_1.default(onesyDate.value.setHours(23, 59, 59, 999));
case 'week':
return new OnesyDate_1.default(endOf(add((onesyDate.dayWeek === 0 ? 0 : 7 - onesyDate.dayWeek), 'day', onesyDate), 'day'));
case 'month':
return new OnesyDate_1.default(new Date(onesyDate.value.setMonth(onesyDate.month, 0)).setHours(23, 59, 59, 999));
case 'year':
return new OnesyDate_1.default(new Date(onesyDate.value.setMonth(12, 0)).setHours(23, 59, 59, 999));
default:
break;
}
}
}
exports.default = endOf;