@burglekitt/gmt
Version:
Temporal-based date and time utilities with timezone support and polyfill integration
16 lines (15 loc) • 529 B
JavaScript
function getStep(date, direction) {
return direction === 1 ? date.add({ days: 1 }) : date.subtract({ days: 1 });
}
export function advanceBusinessDays(start, direction, target) {
const advance = (date, remaining) => {
if (remaining === 0)
return date;
const next = getStep(date, direction);
if (next.dayOfWeek >= 1 && next.dayOfWeek <= 5) {
return advance(next, remaining - 1);
}
return advance(next, remaining);
};
return advance(start, target);
}