项目原始demo,不改动
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
此仓库已存档。您可以查看文件和克隆,但不能推送或创建工单/合并请求。

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.weekNumber = weekNumber;
  6. exports.isLeapYear = isLeapYear;
  7. function createUTCDate(year) {
  8. var month = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
  9. var day = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
  10. var date;
  11. if (year < 100 && year >= 0) {
  12. date = new Date(Date.UTC(year, month, day));
  13. if (isFinite(date.getUTCFullYear())) {
  14. date.setUTCFullYear(year);
  15. }
  16. } else {
  17. date = new Date(Date.UTC(year, month, day));
  18. }
  19. return date;
  20. }
  21. function firstWeekOffset(year, firstDayOfWeek, firstDayOfYear) {
  22. var firstWeekDayInFirstWeek = 7 + firstDayOfWeek - firstDayOfYear;
  23. var firstWeekDayOfYear = (7 + createUTCDate(year, 0, firstWeekDayInFirstWeek).getUTCDay() - firstDayOfWeek) % 7;
  24. return -firstWeekDayOfYear + firstWeekDayInFirstWeek - 1;
  25. }
  26. function dayOfYear(year, month, day, firstDayOfWeek) {
  27. var dayOfYear = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334][month];
  28. if (month > 1 && isLeapYear(year)) {
  29. dayOfYear++;
  30. }
  31. return dayOfYear + day;
  32. }
  33. function weeksInYear(year, firstDayOfWeek, firstDayOfYear) {
  34. var weekOffset = firstWeekOffset(year, firstDayOfWeek, firstDayOfYear);
  35. var weekOffsetNext = firstWeekOffset(year + 1, firstDayOfWeek, firstDayOfYear);
  36. var daysInYear = isLeapYear(year) ? 366 : 365;
  37. return (daysInYear - weekOffset + weekOffsetNext) / 7;
  38. }
  39. function weekNumber(year, month, day, firstDayOfWeek, localeFirstDayOfYear) {
  40. var weekOffset = firstWeekOffset(year, firstDayOfWeek, localeFirstDayOfYear);
  41. var week = Math.ceil((dayOfYear(year, month, day, firstDayOfWeek) - weekOffset) / 7);
  42. if (week < 1) {
  43. return week + weeksInYear(year - 1, firstDayOfWeek, localeFirstDayOfYear);
  44. } else if (week > weeksInYear(year, firstDayOfWeek, localeFirstDayOfYear)) {
  45. return week - weeksInYear(year, firstDayOfWeek, localeFirstDayOfYear);
  46. } else {
  47. return week;
  48. }
  49. }
  50. function isLeapYear(year) {
  51. return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
  52. }
  53. //# sourceMappingURL=dateTimeUtils.js.map