getWorkdayNumberInMonth static method
Returns the workday number in the month of the date.
Throws if shouldThrow is true and date is not a workday (weekend:
saturday or sunday).
If shouldThrow is false and date is not a workday (weekend: saturday
or sunday), returns 0.
Implementation
static int getWorkdayNumberInMonth(
  DateTime date, {
  bool shouldThrow = false,
}) {
  const workdays = EveryWeekday.workdays;
  if (workdays.invalid(date)) {
    if (shouldThrow) {
      throw ArgumentError.value(
        date,
        'date',
        'Must be a workday. Workdays: '
            '${workdays.map((e) => e.weekday.name).join(', ')}',
      );
    }
    return 0;
  }
  var local = date.copyWith();
  var workdaysCount = 0;
  while (local.isAtSameMonthAs(date)) {
    if (workdays.valid(local)) workdaysCount++;
    local = workdays.previous(local);
  }
  return workdaysCount;
}