From: Erik Veenstra Date: 2006-10-20T05:40:08+09:00 Subject: Re: too complex for me... A possible solution... It clearly shows every step in the process. Usually, the 5 lines within the loop are reduced to 1 or 2 lines, but you'll end up with less readable code. Not a good idea for newbies... ;] Notice that it isn't very efficient when handling very long periods. gegroet, Erik V. - http://www.erikveen.dds.nl/ ---------------------------------------------------------------- require "date" start = Date.parse(ARGV.shift) finish = Date.parse(ARGV.shift) hash = {} (start..finish).each do |date| month = [date.year, date.month] days = hash[month] || [] first_day = days.shift || date.day last_day = date.day hash[month] = [first_day, last_day] end p start.to_s p finish.to_s p hash ----------------------------------------------------------------