読者です 読者をやめる 読者になる 読者になる

【Ruby】 曜日を取得して日本語で表示する

Rubyは、Date#todayメソッドを使うことで今日の日付情報を取得することができます。
生成したインスタンスに対してmonthやdayを指定することで今日の月や日を取ることができるので大変便利です。
同様にして曜日もwdayメソッドを呼び出すことで取得することができるのですが、残念ながら日本語の「土曜日」のような結果が返ってくるわけではありません。

require 'date'

#Date型の今日の情報インスタンスを生成
today = Date.today

#月を取得
month = today.month

p month  #=> 8

#日付を取得
day = today.day

p day    #=> 29

#曜日は…?
wday = today.wday

p wday   #=> 1


上のように、曜日を取得するwdayメソッドを呼び出すと「1」と出力された。
調べるとすぐにわかるのですが、曜日は日曜日始まりで、0~6の数字で返されます。

なので。1は月曜日となります。


しかし、実際に曜日を使うときには「1」のまま使う人はいないでしょう(´・ω・`)

なので、日曜(0)から土曜(6)に対応する配列を用意してあげることで曜日を日本語出力できるようにしてあげます。

require 'date'

#日曜から土曜に対応する配列を用意
dayWeek = ["", "", "", "", "", "", ""]

#Date型の今日の情報インスタンスを生成
today = Date.today

#曜日を取得
wday = today.wday

p wday   #=> 1

#日本語で出力
p dayweek[wday]  #=> 月


もっといい方法がありそうな気がぷんぷんするのですが、
とりあえずwdayから表示するには配列を作ってあげて解決しました。



https://twitter.com/yasukoKtytwitter.com