2008年05月01日

[Ruby] Re:日付のRangeを週に切り出すスクリプト

日付のRangeを週に切り出すスクリプト - はこべにっき#に対抗して、僕も書いてみた。


彼は、

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


としようとしていたけれども、僕は

30 31 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 1 2 3

とかしてみる。

そのほうが、週ごとに切り易いし。


ってことで、コード。昼休みにちゃちゃっと書いてみた。

require 'date'

def gen_weeks(m_start, m_end)
month = (m_start-m_start.wday .. m_end+(7-m_end.wday-1)).to_a
weeks = []
while month.length != 0
week = []
1.upto(7){ week << month.shift }
weeks << week
end
return weeks
end

m_start = Date.new(2008, 5, 1) # 月初め
m_end = Date.new(2008, 5, 31) # 月終り

weeks = gen_weeks(m_start, m_end)



ってことで、授業受けてきます。
posted by yu at 13:20 | Comment(2) | TrackBack(0) | Ruby
この記事へのコメント
なるほど,条件をちょっとかえるだけでずいぶんきれいになるのだなー
Posted by hakobe at 2008年05月03日 14:45
もっと巧く書けそうやけどなー。
もっとRuby書けるようになりたいわ。
Posted by yu at 2008年05月04日 10:54
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/95290962
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。