retail-calendar
Version:
A configurable retail calendar
20 lines (19 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var date_utils_1 = require("./date_utils");
var last_day_before_eom_1 = require("./last_day_before_eom");
var LastDayBeforeEOMExceptLeapYearStrategy = /** @class */ (function () {
function LastDayBeforeEOMExceptLeapYearStrategy() {
}
LastDayBeforeEOMExceptLeapYearStrategy.prototype.getLastDayForGregorianLastDay = function (lastDayOfGregorianYear, lastDayOfIsoWeek, retailCalendarYear) {
var lastDayOfNextGregorianYear = date_utils_1.endOfYear(date_utils_1.addDaysToDate(lastDayOfGregorianYear, 1));
var lastDayOfThisYear = new last_day_before_eom_1.LastDayBeforeEOMStrategy().getLastDayForGregorianLastDay(lastDayOfGregorianYear, lastDayOfIsoWeek, retailCalendarYear);
var lastDayOfNextYear = new last_day_before_eom_1.LastDayBeforeEOMStrategy().getLastDayForGregorianLastDay(lastDayOfNextGregorianYear, lastDayOfIsoWeek, retailCalendarYear + 1);
if (date_utils_1.getWeekDifference(lastDayOfNextYear, lastDayOfThisYear) === 53) {
return date_utils_1.addWeeksToDate(lastDayOfThisYear, 1);
}
return lastDayOfThisYear;
};
return LastDayBeforeEOMExceptLeapYearStrategy;
}());
exports.LastDayBeforeEOMExceptLeapYearStrategy = LastDayBeforeEOMExceptLeapYearStrategy;