MCPcopy Create free account
hub / github.com/DHTMLX/scheduler / rebuildMonth

Function rebuildMonth

codebase/sources/dhtmlxscheduler.es.js:17438–17476  ·  view source on GitHub ↗
(year, month, yearlen, mrange, wdaymask, options)

Source from the content-addressed store, hash-verified

17436 return { mmask: M366MASK, mdaymask: MDAY366MASK, nmdaymask: NMDAY366MASK, wdaymask: WDAYMASK.slice(wday), mrange: M366RANGE };
17437}
17438function rebuildMonth(year, month, yearlen, mrange, wdaymask, options) {
17439 var result = { lastyear: year, lastmonth: month, nwdaymask: [] };
17440 var ranges = [];
17441 if (options.freq === RRule.YEARLY) {
17442 if (empty(options.bymonth)) {
17443 ranges = [[0, yearlen]];
17444 } else {
17445 for (var j = 0; j < options.bymonth.length; j++) {
17446 month = options.bymonth[j];
17447 ranges.push(mrange.slice(month - 1, month + 1));
17448 }
17449 }
17450 } else if (options.freq === RRule.MONTHLY) {
17451 ranges = [mrange.slice(month - 1, month + 1)];
17452 }
17453 if (empty(ranges)) {
17454 return result;
17455 }
17456 result.nwdaymask = repeat(0, yearlen);
17457 for (var j = 0; j < ranges.length; j++) {
17458 var rang = ranges[j];
17459 var first = rang[0];
17460 var last = rang[1] - 1;
17461 for (var k = 0; k < options.bynweekday.length; k++) {
17462 var i = void 0;
17463 var _a = options.bynweekday[k], wday = _a[0], n = _a[1];
17464 if (n < 0) {
17465 i = last + (n + 1) * 7;
17466 i -= pymod(wdaymask[i] - wday, 7);
17467 } else {
17468 i = first + (n - 1) * 7;
17469 i += pymod(7 - wdaymask[i] + wday, 7);
17470 }
17471 if (first <= i && i <= last)
17472 result.nwdaymask[i] = 1;
17473 }
17474 }
17475 return result;
17476}
17477function easter(y, offset) {
17478 if (offset === void 0) {
17479 offset = 0;

Callers 1

Calls 3

emptyFunction · 0.70
repeatFunction · 0.70
pymodFunction · 0.70

Tested by

no test coverage detected