From: Rolando Abarca Date: 2008-03-14T20:45:25+09:00 Subject: Re: << : can some body check this code?? On Mar 13, 2008, at 9:33 PM, Chinna Karuppan wrote: > why is it not working properly( weekly calendar)... > 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 > 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.... the problem is that you're using the same week array. Here's another solution for the same problem: def cal_week(month, year = Date.today.year) fotm = Date.new(year,month,1) # first of the month lotm = (fotm >> 1) - 1 # last of the month weeks = [] week = [] fotm.upto(lotm) do |d| week[d.wday] = d.day if d.wday == 6 weeks << week week = [] end end weeks << week unless week.empty? end p cal_week(4) > THnks > CHinna > -- > Posted via http://www.ruby-forum.com/. regards, -- Rolando Abarca M.