UNPKG

retail-calendar

Version:
20 lines (19 loc) 1.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var date_utils_1 = require("./date_utils"); var last_day_nearest_eom_1 = require("./last_day_nearest_eom"); var PenultimateDayOfWeekNearestEOMStrategy = /** @class */ (function () { function PenultimateDayOfWeekNearestEOMStrategy() { } PenultimateDayOfWeekNearestEOMStrategy.prototype.getLastDayForGregorianLastDay = function (lastDayOfGregorianYear, lastDayOfIsoWeek, retailCalendarYear) { // get penultimate day of ISO week by moving one day back var penultimateDayOfIsoWeek = lastDayOfIsoWeek === 0 ? 6 : lastDayOfIsoWeek - 1; // use last day nearest end of month logic var lastDayNearestEOMStrategy = new last_day_nearest_eom_1.LastDayNearestEOMStrategy(); var lastWeekOfYear = lastDayNearestEOMStrategy.getLastDayForGregorianLastDay(lastDayOfGregorianYear, penultimateDayOfIsoWeek, retailCalendarYear); // move the day one day forward to get the last day of the week return date_utils_1.addDaysToDate(lastWeekOfYear, 1); }; return PenultimateDayOfWeekNearestEOMStrategy; }()); exports.PenultimateDayOfWeekNearestEOMStrategy = PenultimateDayOfWeekNearestEOMStrategy;