addWorkdays method

DateTime addWorkdays(
  1. int n
)

Adds n working days (Mon–Fri) to this date.

DateTime(2024, 1, 5).addWorkdays(3) // 2024-01-10 (skips weekend)

Implementation

DateTime addWorkdays(int n) {
  var result = this;
  var remaining = n.abs();
  final direction = n >= 0 ? 1 : -1;
  while (remaining > 0) {
    result = result.add(Duration(days: direction));
    if (result.isWeekday) remaining--;
  }
  return result;
}