addBusinessDays method

Hora addBusinessDays(
  1. int days, [
  2. BusinessDayConfig config = BusinessDayConfig.standard
])

Adds the specified number of business days.

final h = Hora.of(year: 2023, month: 12, day: 22); // Friday
final result = h.addBusinessDays(3); // Wednesday (skips Sat, Sun)

Implementation

Hora addBusinessDays(
  int days, [
  BusinessDayConfig config = BusinessDayConfig.standard,
]) {
  if (days == 0) return this;

  var current = this;
  var remaining = days.abs();
  final direction = days.isNegative ? -1 : 1;

  while (remaining > 0) {
    current = direction > 0
        ? current.add(1, TemporalUnit.day)
        : current.subtract(1, TemporalUnit.day);

    if (current.isBusinessDay(config)) {
      remaining--;
    }
  }

  return current;
}