index.js 1.2 KB

12345678910111213141516171819202122232425262728293031
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = getUTCISOWeekYear;
  7. var _index = _interopRequireDefault(require("../../toDate/index.js"));
  8. var _index2 = _interopRequireDefault(require("../requiredArgs/index.js"));
  9. var _index3 = _interopRequireDefault(require("../startOfUTCISOWeek/index.js"));
  10. function getUTCISOWeekYear(dirtyDate) {
  11. (0, _index2.default)(1, arguments);
  12. var date = (0, _index.default)(dirtyDate);
  13. var year = date.getUTCFullYear();
  14. var fourthOfJanuaryOfNextYear = new Date(0);
  15. fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);
  16. fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);
  17. var startOfNextYear = (0, _index3.default)(fourthOfJanuaryOfNextYear);
  18. var fourthOfJanuaryOfThisYear = new Date(0);
  19. fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);
  20. fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);
  21. var startOfThisYear = (0, _index3.default)(fourthOfJanuaryOfThisYear);
  22. if (date.getTime() >= startOfNextYear.getTime()) {
  23. return year + 1;
  24. } else if (date.getTime() >= startOfThisYear.getTime()) {
  25. return year;
  26. } else {
  27. return year - 1;
  28. }
  29. }
  30. module.exports = exports.default;