35 lines
1.1 KiB
Plaintext
35 lines
1.1 KiB
Plaintext
"use strict";
|
|
const constants = require("./constants-DR3SPJ7u.js");
|
|
const normalizeUnit = require("./normalizeUnit-Cn0hUyBC.js");
|
|
const startOfTime = require("./startOfTime-CiMtfVAs.js");
|
|
const units = require("./units.js");
|
|
const { DATE, DAY, HOUR, MINUTE, MONTH, SECOND, YEAR } = units;
|
|
function endOf(date, unit) {
|
|
unit = normalizeUnit.normalizeUnit(unit);
|
|
let time = 0;
|
|
switch (unit) {
|
|
case YEAR:
|
|
time = startOfTime.startOfDate(date, date.getFullYear() + 1, 0, 1) - 1;
|
|
break;
|
|
case MONTH:
|
|
time = startOfTime.startOfDate(date, void 0, date.getMonth() + 1, 1) - 1;
|
|
break;
|
|
case DATE:
|
|
case DAY:
|
|
time = startOfTime.startOfDate(date) + constants.MS_IN_DAY - 1;
|
|
break;
|
|
case HOUR:
|
|
time = startOfTime.startOfTime(date, constants.MS_IN_HOUR) + constants.MS_IN_HOUR - 1;
|
|
break;
|
|
case MINUTE:
|
|
time = startOfTime.startOfTime(date, constants.MS_IN_MINUTE) + constants.MS_IN_MINUTE - 1;
|
|
break;
|
|
case SECOND:
|
|
time = startOfTime.startOfTime(date, constants.MS_IN_SECOND) + constants.MS_IN_SECOND - 1;
|
|
break;
|
|
}
|
|
time && date.setTime(time);
|
|
return date;
|
|
}
|
|
module.exports = endOf;
|