決裁月から今年度の月を割り出す

もっといい方法はあるだろうけど、作ったので載せておきました。
末日の判定等は今回必要なかったのでつけていません。
引数dayはdate,deadlineは月のintで

#決裁月から今年度を割り出す(返り値は[{"01"=>"2012"},{"02"=>"2012"}…])
def set_current_year(day=nil,deadline=nil)
  month = day.month
  year = day.year
  month_array = []
  if month <= deadline
    i = 0
    while i < month
      i += 1
      if i > 9
        month_array << {i.to_s => (year.to_i).to_s}
      else
        month_array << {"0" + i.to_s => (year.to_i).to_s}
      end
    end
    l = 1
    while month + l < 13
      if month + l > 9
        month_array << {(month + l).to_s => (year.to_i - 1).to_s}
      else
        month_array << {"0" + (month + l).to_s => (year.to_i - 1).to_s}
      end
      l += 1
    end
  elsif month > deadline
    i = 1
    while deadline + i <= month
      if deadline + i > 9
        month_array << {(deadline + i).to_s => (year.to_i).to_s}
      else
        month_array << {"0" + (deadline + i).to_s => (year.to_i).to_s}
      end
      i += 1
    end
  end
  return month_array
end

Hashでほしい場合は

#決裁月から今年度を割り出す(返り値は{20120101=>"2012-01-01",20120201=>"2012-02-01"…})
def set_array_in_hash_current_year_pattern_date(day=nil,deadline=nil)
  month = day.month
  year = day.year
  month_array = {}
  if month <= deadline
    i = 0
    while i < month
      i += 1
      if i > 9
        month_array[((year.to_i).to_s + i.to_s + "01").to_i] = (year.to_i).to_s + "-" + i.to_s + "-" + "01"
      else
        month_array[((year.to_i).to_s + "0" + i.to_s + "01").to_i] = (year.to_i).to_s + "-0" + i.to_s + "-" + "01"
      end
    end
    l = 1
    while month + l < 13
      if month + l > 9
        month_array[((year.to_i - 1).to_s + (month + l).to_s + "01").to_i] = (year.to_i - 1).to_s + "-" + (month + l).to_s + "-" + "01"
      else
        month_array[((year.to_i - 1).to_s + "0" +  (month + l).to_s + "01").to_i] = (year.to_i - 1).to_s + "-0" + (month + l).to_s + "-" + "01"
      end
      l += 1
    end
  elsif month > deadline
    i = 1
    while deadline + i <= month
      if deadline + i > 9
        month_array[((year.to_i).to_s + (deadline + i).to_s + "01").to_i] = (year.to_i).to_s + "-" + (deadline + i).to_s + "-" + "01"
      else
        month_array[((year.to_i).to_s + "0" + (deadline + i).to_s + "01").to_i] = (year.to_i).to_s + "-0" + (deadline + i).to_s + "-" + "01"
      end
      i += 1
    end
  end
  return month_array
end

逆引きRuby – ファイルアクセス

ファイルの詳細情報を取得する
s = File::stat(“/etc/passwd”)
p s.dev # デバイス番号
p s.ino # i-node番号
p s.mode # ファイルモード
p s.nlink # ハードリンクの数
p s.uid # ファイル所有者のユーザID
p s.gid # ファイル所有者のグループID
p s.size # ファイルサイズ
p s.blocks # 割り当てられているブロック数
p s.atime # 最終アクセス時刻
p s.mtime # 最終更新時刻
p s.ftype # ファイルタイプ
引用元: 逆引きRuby – ファイルアクセス.