rpg-calendar
Version:
Low level library for working with RPG/Fantasy dates
25 lines • 2.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDaysInYearBuilder = void 0;
const getDaysInYearBuilder = (months, isLeapYear) => {
// We use the days in year a lot, so calculate the variables ahead of time
// Days in a normal year
const daysInYear = months.reduce((days, month) => {
let extraDaysInMonth = 0;
if (month === null || month === void 0 ? void 0 : month.extraDays) {
extraDaysInMonth = month.extraDays.filter((ed) => !ed.onlyInLeapYear).length;
}
return days + month.daysInMonth + extraDaysInMonth;
}, 0);
// Days in a leap-year
const daysInLeapYear = months.reduce((days, month) => {
let extraDaysInMonth = 0;
if (month === null || month === void 0 ? void 0 : month.extraDays) {
extraDaysInMonth = month.extraDays.length;
}
return days + month.daysInMonth + extraDaysInMonth;
}, 0);
return (year) => (isLeapYear(year) ? daysInLeapYear : daysInYear);
};
exports.getDaysInYearBuilder = getDaysInYearBuilder;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5c0luWWVhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZGF5c0luWWVhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFTyxNQUFNLG9CQUFvQixHQUFHLENBQUMsTUFBMEIsRUFBRSxVQUFxQyxFQUFFLEVBQUU7SUFDeEcsMEVBQTBFO0lBRTFFLHdCQUF3QjtJQUN4QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQy9DLElBQUksZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLElBQUksS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVMsRUFBRTtZQUNwQixnQkFBZ0IsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLENBQUMsTUFBTSxDQUFDO1NBQzlFO1FBRUQsT0FBTyxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQztJQUNyRCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFTixzQkFBc0I7SUFDdEIsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNuRCxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxTQUFTLEVBQUU7WUFDcEIsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUM7U0FDM0M7UUFFRCxPQUFPLElBQUksR0FBRyxLQUFLLENBQUMsV0FBVyxHQUFHLGdCQUFnQixDQUFDO0lBQ3JELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUVOLE9BQU8sQ0FBQyxJQUFZLEVBQVUsRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQ3BGLENBQUMsQ0FBQztBQXhCVyxRQUFBLG9CQUFvQix3QkF3Qi9CIn0=