From: Dale Martenson Date: 2007-01-17T05:55:09+09:00 Subject: Re: Calculate number of non-weekend days between two dates? chrismo wrote: > Any date/time libraries out there (I can't seem to find anything in the > std libs) that handle calculations like number of non-weekend days > between two dates, etc.? require 'date' def weekdays(d1, d2) count = 0 d1.upto(d2) do |date| count += 1 if [1,2,3,4,5].include?(date.wday) end count end puts weekdays( Date.new(2006, 12, 1), Date.new(2007, 1, 16) ) A more useful twist might be to collect the weekdays and return an array: require 'date' def weekdays(d1, d2) _weekdays = [] d1.upto(d2) do |date| _weekdays << date if [1,2,3,4,5].include?(date.wday) end _weekdays end puts weekdays( Date.new(2006, 12, 1), Date.new(2007, 1, 16) ).size