(year, month, yearlen, mrange, wdaymask, options)
| 17436 | return { mmask: M366MASK, mdaymask: MDAY366MASK, nmdaymask: NMDAY366MASK, wdaymask: WDAYMASK.slice(wday), mrange: M366RANGE }; |
| 17437 | } |
| 17438 | function 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 | } |
| 17477 | function easter(y, offset) { |
| 17478 | if (offset === void 0) { |
| 17479 | offset = 0; |
no test coverage detected