From: Todd Benson Date: 2008-03-14T14:34:36+09:00 Subject: Re: << : can some body check this code?? On Fri, Mar 14, 2008 at 12:29 AM, Todd Benson wrote: > > On Thu, Mar 13, 2008 at 8:40 PM, Chinna Karuppan > wrote: > > I think I found an answer not sure if it is normal way to do things.... > > weeks << week.clone instead of week... > > Looking forward for comments... > > THnks > > > > > > > > > > > weeks << week > > > p week,weeks > > > week.clear > > > > > > end > > > end > > > weeks << week if week.length != 0 > > > weeks > > > end > > > > > > p cal_week(4) > > > > > > I think it is the problem of week still remembering the values.... > > > THnks > > > CHinna > > Yes, you are using the same Array object over and over with > week.clear. I tend to just do week = [] instead of clone. > > Todd Sorry, didn't post example. Here it is using your code... require "Date" def mon_days(month,year=Date.today.year) mday = [nil,31,28,31,30,31,30,31,31,30,31,30,31] mday[2] = 29 if Date.leap? year mday[month] end def cal_week(month,year=Date.today.year) days = 1..mon_days(month,year) weeks = [] week = [] wday = 1 for i in days wday = Date.new(year,month,i).wday week[wday] = i if wday == 6 weeks << week week = [] end end weeks << week if week.length != 0 weeks end p cal_week(4) Todd