RUBYの宿題教えてください。at TECH
RUBYの宿題教えてください。 - 暇つぶし2ch550:デフォルトの名無しさん
07/04/25 19:09:23
#!/usr/bin/ruby
require 'date' # >>545-546 のを改悪
require 'enumerator'
class Date
  def to_a
    (Date.new(self.year,self.month,1)..Date.new(self.year,self.month,-1)).to_a
  end
  def calender(wide = true)
    width = wide ? 3 : 2
    cal = "#{MONTHNAMES[self.month]} #{self.year if wide}".center((width+1)*7) << "\n"
    cal << ABBR_DAYNAMES.map{|n| n[0..width-1]}.join(' ') << "\n"
    cal << ' ' * (width+1) * Date.new(self.year, self.month, 1).wday
    self.to_a.each do |d|
      cal << d.day.to_s.rjust(width) << ' ' << (d.wday == 6 ? "\n" : "")
    end; cal
  end
  def calender_yearly
    cals = (1..12).map do |month|
      a = Date.new(self.year, month, 1).calender(false).split(/\n/)
      a[7] ||= ''; a
    end
    ret = "#{self.year.to_s.center(63)}\n\n"
    cals.each_slice(3) do |a|
      ret << a.transpose.map{|b|b.map{|c|c.ljust(22)}.to_s}.join("\n") << "\n"
    end; ret
  end
end
case ARGV.size
  when 0; puts Date.today.calender
  when 1; puts Date.new(ARGV[0].to_i, 1, 1).calender_yearly
  when 2; puts Date.new(ARGV[1].to_i, ARGV[0].to_i, 1).calender
end


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch