Dateクラスについて

お疲れ様です!

IHです!

 

今日は、Dateクラスについて、アウトプットを行いたいと思います!

 

ちなみに、こちらのサイトを参考にさせていただきました!

参考文献です

 

 

早速行ってみましょう!

 

ーーーーーーーーーーーーーーーー

Dateクラスを 使うことで、日付を扱うことができるようになります。

 

しかし、Dateクラスを使用したい場合は、

 

require 'date'

 

とファイルに記述してあげることが必要になります。

 

Dateクラスはnewメソッドと組み合わせることで、引数部分の日付を得ることができます。

 

たとえば

 

require 'date'
day = Date.new(2000, 1, 1)

 

と記述することで、「2020年1月1日」の日付を表すDateクラスのオブジェクトを生成できます。

("day"はただの変数です)

 

また、今日の日付を取得することもできます!

以下のように記述します。

 

require 'date'
day = Date.today

 

これにより、今日であれば「2020年8月6日」の日付を表すDateクラスのオブジェクトを生成できるわけですね!

 

さらに、ここにwdayメソッドを付け足すことで、曜日の情報も取得できます。

 

ただし、返される値は

「0〜6の数字」

である点に注意が必要です。

 

具体的には

「日・月・火・水・木・金・土」

の順番で、

「0・1・2・3・4・5・6」

が渡されます!

 

以下が記述例になります。

 

require 'date'
day = Date.today.wday
=> "0~6の数字"

 

今日は「2020年8月6日木曜日」なので「4」という情報を受け取ることができます!

 

このwdayメソッドを使えば、以下のようなこともできます。

 

require 'date'

# 各曜日を要素にした配列
week = ["日曜日","月曜日","火曜日","水曜日","木曜日","金曜日","土曜日"]

day = Date.today.wday

puts week[Date.today.wday]
=> "木曜日"

 

各曜日を要素にした配列week(必ず日曜日始まり)の添字部分に、今日の曜日を返す変数dayを入れます。

 

すると、"4"が返ってくるので、

配列の5番目の要素である"木曜日"を取得することができるわけです!

 

ーーーーーーーーーーーーーーーー

 

いかがでしたか? 

 

私事ですが、本日は、テックキャンプのカリキュラムで

 

「次のアプリをダウンロードしてください。そのアプリには、修正するべき問題が6つあるので、順番に解決してください」

 

と言った旨の課題が出され、そちらを解いていました。

 

なんとか5つの問題は解くことができたのですが、最後の問題で、このDateクラスを用いる問題が出てきました。

 

その問題は、簡単に言えば

 

「1週間分の曜日を表示させよう!」

 

というものなのですが……

 

これが、まあ難しくて解けない😅

 

エラーが出たり、「木曜日」がただ7つだけだったり😅

 

今日中に解くことは無理だったので、明日メンターの方に質問しながら解こうと思います。

 

それでは、本日もここまで読んでくださってありがとうございました!

 

一日お疲れ様でした!