Ruby 第二回目 カレンダー
Rubyでカレンダークラスを作ってみました。
前回、年月を与えて月末日を返すクラスを作ってみたけど、Rubyでは-1を与えれば月末日を返してくれるものがちゃんと用意されていました。今回はこれを使ってみることに。
koyomi.rb
| require "date" class Calendar def initialize ( yy , mm ) @yy = yy @mm = mm @ymd = Date.new(yy,mm,1) end def show dai = @ymd.strftime("%B %Y年") yobi = "日 月 火 水 木 金 土" daispc = (yobi.length - dai.length) / 2 print " " * daispc, dai,"\n" print yobi,"\n" hiduke = " " * @ymd.wday (@ymd.day..Date.new(@yy,@mm,-1).day).each { |d| hiduke += sprintf("%2s ",d) } len = (hiduke.length / 21.0).ceil moji = hiduke.scan(/.{1,21}/m); moji.each { |m| print m.chop,"\n" } end end #ロジックの検証用 Calendar.new(2008,1).show Calendar.new(2008,2).show Calendar.new(2008,5).show Calendar.new(2008,6).show Calendar.new(2009,2).show |
出力結果は以下のようになりました。
とりあえず、出力されたのでまずは一安心。ロジック的にはしっくりきていない部分もあるけど、まだまだRubyの組み方がよく分かっていないのでこんなものでしょう。
| 固定リンク | コメント (0) | トラックバック (0)






最近のコメント