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

Function rebuildMonth

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

Source from the content-addressed store, hash-verified

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

Callers 1

dhtmlxscheduler.jsFile · 0.70

Calls 3

emptyFunction · 0.70
repeatFunction · 0.70
pymodFunction · 0.70

Tested by

no test coverage detected