曜日の取得方と曜日による条件分岐
曜日によって表示が変わるプログラムがあったとします。
例)
金曜日なら 今日は華金だ!
他の曜日なら 今日は●曜日だ
上記のように曜日を取得して、取得した曜日によって条件分岐を行う方法はどのようなものでしょうか?
Timeクラスを使用する方法
day = Time.now
if day.friday?
puts "今日は華金だ!"
else
puts "今日は" + %w(日 月 火 水 木 金 土 )[day.wday] + "曜日だ"
end
日付に関する値を取得するTimeクラスがもともと存在します。
Time.nowで今日の日付情報を取得できます。
試しにTime.nowを出力すると
day = Time.now
puts day
ターミナル
2020-03-01 14:25:39 +0900
上記のように日付情報を取得できます。この情報は自分のPCに依存します。
Time.nowに取得した値に対してwdayメソッドを使用することで曜日の値を取得できます。
曜日の値は0~6の数字で返され、0が日曜日、6が土曜日を表します。
これを利用して条件分岐を行なって行きます。
まず2行目のif文ではfriday?メソッドにより
今日が金曜日かを判断しています。
もし金曜日(値が5)であれば”今日は華金だ!”と出力され、筆者は夜の歓楽街へと消えることでしょう
それ以外の値であった場合5行目の%w(日..土)に対して[day.wday]により引数の中の何番目に当たる値を代入して表示するかの文で今日は●曜日だを出力しています。
このようにすることで曜日の取得と曜日による条件分岐を行うことだできます。