カレンダー的なものの作成
最近あまりコードを書いていなかったので、とりあえず簡単なものでも。
require 'date' t = Date.today t.wday # => 0 def days_of_month m, y=Date.today.year Date.new(y,m+1,1) - Date.new(y,m,1) end def days_list m,y=Date.today.year days = days_of_month m, y n = Date.new(y,m,1).wday x = Array.new(n,"*") x.concat((1..days).map(&:to_s)) end def layout xs xs.to_enum(:each_slice,7).map{ |e| e} end days_of_month 9 # => Rational(30, 1) x = days_list 8 # => ["*", "*", "*", "*", "*", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"] layout(x).each{ |days| days.each{ |day| printf("%2s ", day) }; puts} # >> * * * * * 1 2 # >> 3 4 5 6 7 8 9 # >> 10 11 12 13 14 15 16 # >> 17 18 19 20 21 22 23 # >> 24 25 26 27 28 29 30 # >> 31