2014-01-18 11 views
14

私はあなたが整数値として曜日を返すためにwdayを使用することができます知っているの日に整数に変換:ルビー/ Railsの - 週

Date.new(2001,2,3).wday   #=> 6 (a.k.a. "Saturday") 

しかし、この逆の方法を行うための方法があります、 逆に?

同様:

day_of_week(6)      #=> "Saturday" 

それともこれは私が自分で変換すると何かありますか?

ありがとうございました。

答えて

37

Date::DAYNAMES配列は、その情報を持っています

Date::DAYNAMES[6] 
# => "Saturday" 
2

私は繰り返しこのDate::DAYNAMES[d]を入力したくないので、私はprocまたはlambdaを使用します。

day = Proc.new { |d| Date::DAYNAMES[d] } 
day.call(6) 
# => "Saturday" 

あるいはより簡潔lambdaとして:

day = ->num { Date::DAYNAMES[num] } 
day.(6) 
# => "Saturday" 

だけに覚えている:本当に入力するとあなたはずっと、 `日=日:: DAYNAMES`ことを気にした場合require 'Date'

+3

- としてアクセス可能'days [6]'はより簡単な解決策です。 – jsdalton

+0

@jsdaltonこれはProcを呼び出す別の方法です。ありがとう+1;) – fyz