rpg-calendar
Version:
Low level library for working with RPG/Fantasy dates
21 lines • 2.16 kB
JavaScript
export 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?.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?.extraDays) {
extraDaysInMonth = month.extraDays.length;
}
return days + month.daysInMonth + extraDaysInMonth;
}, 0);
return (year) => (isLeapYear(year) ? daysInLeapYear : daysInYear);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5c0luWWVhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZGF5c0luWWVhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE1BQTBCLEVBQUUsVUFBcUMsRUFBRSxFQUFFO0lBQ3hHLDBFQUEwRTtJQUUxRSx3QkFBd0I7SUFDeEIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUMvQyxJQUFJLGdCQUFnQixHQUFHLENBQUMsQ0FBQztRQUN6QixJQUFJLEtBQUssRUFBRSxTQUFTLEVBQUU7WUFDcEIsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztTQUM5RTtRQUVELE9BQU8sSUFBSSxHQUFHLEtBQUssQ0FBQyxXQUFXLEdBQUcsZ0JBQWdCLENBQUM7SUFDckQsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRU4sc0JBQXNCO0lBQ3RCLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEVBQUU7UUFDbkQsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDekIsSUFBSSxLQUFLLEVBQUUsU0FBUyxFQUFFO1lBQ3BCLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO1NBQzNDO1FBRUQsT0FBTyxJQUFJLEdBQUcsS0FBSyxDQUFDLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQztJQUNyRCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFTixPQUFPLENBQUMsSUFBWSxFQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUNwRixDQUFDLENBQUMifQ==