UNPKG

1.58 kBJavaScriptView Raw
1"use strict";
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.default = endOfDecade;
7
8var _index = _interopRequireDefault(require("../toDate/index.js"));
9
10var _index2 = _interopRequireDefault(require("../_lib/requiredArgs/index.js"));
11
12function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
14/**
15 * @name endOfDecade
16 * @category Decade Helpers
17 * @summary Return the end of a decade for the given date.
18 *
19 * @description
20 * Return the end of a decade for the given date.
21 *
22 * ### v2.0.0 breaking changes:
23 *
24 * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).
25 *
26 * @param {Date|Number} date - the original date
27 * @returns {Date} the end of a decade
28 * @param {Object} [options] - an object with options.
29 * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}
30 * @throws {TypeError} 1 argument required
31 * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2
32 *
33 * @example
34 * // The end of a decade for 12 May 1984 00:00:00:
35 * var result = endOfDecade(new Date(1984, 4, 12, 00, 00, 00))
36 * //=> Dec 31 1989 23:59:59.999
37 */
38function endOfDecade(dirtyDate) {
39 (0, _index2.default)(1, arguments);
40 var date = (0, _index.default)(dirtyDate);
41 var year = date.getFullYear();
42 var decade = 9 + Math.floor(year / 10) * 10;
43 date.setFullYear(decade, 11, 31);
44 date.setHours(23, 59, 59, 999);
45 return date;
46}
47
48module.exports = exports.default;
\No newline at end of file