|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- "use strict";
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.weekNumber = weekNumber;
- exports.isLeapYear = isLeapYear;
-
- function createUTCDate(year) {
- var month = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
- var day = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
- var date;
-
- if (year < 100 && year >= 0) {
- date = new Date(Date.UTC(year, month, day));
-
- if (isFinite(date.getUTCFullYear())) {
- date.setUTCFullYear(year);
- }
- } else {
- date = new Date(Date.UTC(year, month, day));
- }
-
- return date;
- }
-
- function firstWeekOffset(year, firstDayOfWeek, firstDayOfYear) {
- var firstWeekDayInFirstWeek = 7 + firstDayOfWeek - firstDayOfYear;
- var firstWeekDayOfYear = (7 + createUTCDate(year, 0, firstWeekDayInFirstWeek).getUTCDay() - firstDayOfWeek) % 7;
- return -firstWeekDayOfYear + firstWeekDayInFirstWeek - 1;
- }
-
- function dayOfYear(year, month, day, firstDayOfWeek) {
- var dayOfYear = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334][month];
-
- if (month > 1 && isLeapYear(year)) {
- dayOfYear++;
- }
-
- return dayOfYear + day;
- }
-
- function weeksInYear(year, firstDayOfWeek, firstDayOfYear) {
- var weekOffset = firstWeekOffset(year, firstDayOfWeek, firstDayOfYear);
- var weekOffsetNext = firstWeekOffset(year + 1, firstDayOfWeek, firstDayOfYear);
- var daysInYear = isLeapYear(year) ? 366 : 365;
- return (daysInYear - weekOffset + weekOffsetNext) / 7;
- }
-
- function weekNumber(year, month, day, firstDayOfWeek, localeFirstDayOfYear) {
- var weekOffset = firstWeekOffset(year, firstDayOfWeek, localeFirstDayOfYear);
- var week = Math.ceil((dayOfYear(year, month, day, firstDayOfWeek) - weekOffset) / 7);
-
- if (week < 1) {
- return week + weeksInYear(year - 1, firstDayOfWeek, localeFirstDayOfYear);
- } else if (week > weeksInYear(year, firstDayOfWeek, localeFirstDayOfYear)) {
- return week - weeksInYear(year, firstDayOfWeek, localeFirstDayOfYear);
- } else {
- return week;
- }
- }
-
- function isLeapYear(year) {
- return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;
- }
- //# sourceMappingURL=dateTimeUtils.js.map
|