(year, options)
| 17347 | return wdaymask; |
| 17348 | }(); |
| 17349 | function rebuildYear(year, options) { |
| 17350 | var firstyday = datetime(year, 1, 1); |
| 17351 | var yearlen = isLeapYear(year) ? 366 : 365; |
| 17352 | var nextyearlen = isLeapYear(year + 1) ? 366 : 365; |
| 17353 | var yearordinal = toOrdinal(firstyday); |
| 17354 | var yearweekday = getWeekday(firstyday); |
| 17355 | var result = __assign(__assign({ yearlen, nextyearlen, yearordinal, yearweekday }, baseYearMasks(year)), { wnomask: null }); |
| 17356 | if (empty(options.byweekno)) { |
| 17357 | return result; |
| 17358 | } |
| 17359 | result.wnomask = repeat(0, yearlen + 7); |
| 17360 | var firstwkst; |
| 17361 | var wyearlen; |
| 17362 | var no1wkst = firstwkst = pymod(7 - yearweekday + options.wkst, 7); |
| 17363 | if (no1wkst >= 4) { |
| 17364 | no1wkst = 0; |
| 17365 | wyearlen = result.yearlen + pymod(yearweekday - options.wkst, 7); |
| 17366 | } else { |
| 17367 | wyearlen = yearlen - no1wkst; |
| 17368 | } |
| 17369 | var div = Math.floor(wyearlen / 7); |
| 17370 | var mod = pymod(wyearlen, 7); |
| 17371 | var numweeks = Math.floor(div + mod / 4); |
| 17372 | for (var j = 0; j < options.byweekno.length; j++) { |
| 17373 | var n = options.byweekno[j]; |
| 17374 | if (n < 0) { |
| 17375 | n += numweeks + 1; |
| 17376 | } |
| 17377 | if (!(n > 0 && n <= numweeks)) { |
| 17378 | continue; |
| 17379 | } |
| 17380 | var i = void 0; |
| 17381 | if (n > 1) { |
| 17382 | i = no1wkst + (n - 1) * 7; |
| 17383 | if (no1wkst !== firstwkst) { |
| 17384 | i -= 7 - firstwkst; |
| 17385 | } |
| 17386 | } else { |
| 17387 | i = no1wkst; |
| 17388 | } |
| 17389 | for (var k = 0; k < 7; k++) { |
| 17390 | result.wnomask[i] = 1; |
| 17391 | i++; |
| 17392 | if (result.wdaymask[i] === options.wkst) |
| 17393 | break; |
| 17394 | } |
| 17395 | } |
| 17396 | if (includes(options.byweekno, 1)) { |
| 17397 | var i = no1wkst + numweeks * 7; |
| 17398 | if (no1wkst !== firstwkst) |
| 17399 | i -= 7 - firstwkst; |
| 17400 | if (i < yearlen) { |
| 17401 | for (var j = 0; j < 7; j++) { |
| 17402 | result.wnomask[i] = 1; |
| 17403 | i += 1; |
| 17404 | if (result.wdaymask[i] === options.wkst) |
| 17405 | break; |
| 17406 | } |
no test coverage detected