index.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = endOfDecade;
  7. var _index = _interopRequireDefault(require("../toDate/index.js"));
  8. var _index2 = _interopRequireDefault(require("../_lib/requiredArgs/index.js"));
  9. /**
  10. * @name endOfDecade
  11. * @category Decade Helpers
  12. * @summary Return the end of a decade for the given date.
  13. *
  14. * @description
  15. * Return the end of a decade for the given date.
  16. *
  17. * @param {Date|Number} date - the original date
  18. * @returns {Date} the end of a decade
  19. * @param {Object} [options] - an object with options.
  20. * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}
  21. * @throws {TypeError} 1 argument required
  22. * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2
  23. *
  24. * @example
  25. * // The end of a decade for 12 May 1984 00:00:00:
  26. * const result = endOfDecade(new Date(1984, 4, 12, 00, 00, 00))
  27. * //=> Dec 31 1989 23:59:59.999
  28. */
  29. function endOfDecade(dirtyDate) {
  30. (0, _index2.default)(1, arguments);
  31. var date = (0, _index.default)(dirtyDate);
  32. var year = date.getFullYear();
  33. var decade = 9 + Math.floor(year / 10) * 10;
  34. date.setFullYear(decade, 11, 31);
  35. date.setHours(23, 59, 59, 999);
  36. return date;
  37. }
  38. module.exports = exports.default;