"use strict"; exports.endOfDecade = endOfDecade; var _index = require("./toDate.cjs"); var _index2 = require("./_core/getFullYear.cjs"); var _index3 = require("./_core/setFullYear.cjs"); /** * The {@link endOfDecade} function options. */ /** * @name endOfDecade * @category Decade Helpers * @summary Return the end of a decade for the given date. * * @description * Return the end of a decade for the given date. * * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc). * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments. * * @param date - The original date * @param options - An object with options * * @returns The end of a decade * * @example * // The end of a decade for 12 May 1984 00:00:00: * const result = endOfDecade(new Date(1984, 4, 12, 00, 00, 00)) * //=> Dec 31 1989 23:59:59.999 */ function endOfDecade(date, options) { // TODO: Switch to more technical definition in of decades that start with 1 // end with 0. I.e. 2001-2010 instead of current 2000-2009. It's a breaking // change, so it can only be done in 4.0. const _date = (0, _index.toDate)(date, options?.in); const year = (0, _index2.getFullYear)(_date); const decade = 9 + Math.floor(year / 10) * 10; (0, _index3.setFullYear)(_date, decade + 1, 0, 0); _date.setHours(23, 59, 59, 999); return _date; }