It is pretty simple to get number of work days between two dates. For example we can get the number of workdays in this month.

  start_date = Date.civil(2010, 8, 1)
  end_date = Date.civil(2010, 8, 31)
  workdays = (start_date..end_date).select { |day| ![0, 6].include?(day.wday) }.size

Please note that this doesn’t include any check for holidays, you’ll need to figure that yourself (if you have need for that at all).

For more info see Array#select and Date#wday methods.