【Ruby】配列に入っている今日の曜日をDateクラス、.wdayメソッドを使って取り出す方法。

プログラミング

コード全体

require 'date'

# 曜日を配列に入れて変数wdaysに設定する
wdays = ['(日)','(月)','(火)','(水)','(木)','(金)','(土)']

# 配列を呼び出す
puts wdays[0] #日曜
puts wdays[1] #月曜
puts wdays[2] #火曜
puts wdays[3] #水曜

# Dateクラスと各メソッド
puts Date.today #今日の年月日
puts Date.today.year #今日の年
puts Date.today.month #今日の月
puts Date.today.day #今日の日
puts Date.today.wday #今日の曜日を0~6の引数で表示


today = Date.today.wday #今日の曜日を変数に変更
puts wdays[today] #変数と.wdayメソッド、配列を用いた呼び出し方

ターミナルでの表示(本日は2020-11-05、木曜日です)

Dateクラスの使いかた

 Dateクラスでは、PC上で設定されている年月日を取得することができます。
  以下は、主に使われる、年、月、日、曜日の取得の方法です。

Date.today          #今日の年月日
Date.today.year     #今日の年
Date.today.month    #今日の月
Date.today.day      #今日の日
Date.today.wday     #今日の曜日を0~6の引数で表示(本日は木曜日なので、4が出ます)

ターミナルでの表示

配列からの呼び出し方

 配列からの呼び出し方は、配列名[添字]という書き方によって呼び出すことができます。
 今回のコードで言うと、配列名はwdays、戻り値は.wdayを使った変数で表現します。
(今回のコードでいうと変数化する必要は無いのですが、実際に実装する中では変数化して使うことがあるのでは?と思い変数化しています)

wdays = ['(日)','(月)','(火)','(水)','(木)','(金)','(土)']

puts wdays[0] # =>(日) 配列の0番目を取得

today = Date.today.wday #今日の年月日を変数に変更

puts wdays[today] # =>(木)
puts wdays[Date.today.wday] #変数todayを定義しなくても(木)を取り出せます。

おまけ、明日以降を呼び出したいとき

 添字を今日の曜日とすることで、配列から値を取得できます。
 この変数を定義する際に(Date.today+1).wdayとすると、(金)を取り出せたりします。

tomorrow = (Date.today + 1).wday #今日の日付+1で明日を表現

puts wdays[tomorrow] # =>(金)
puts wdays[(Date.today + 1).wday] #変数tomorrowを定義しなくても(金)を取り出せます。

 日付を表示するときには、コントローラー上で表示したいものに合わせて変数todayの定義を工夫してみましょう。

コメント