13
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Railsで今週の○曜日の日付を取得するシンプルな方法

Last updated at Posted at 2018-10-02

Railsで今週の○曜日を取得したいと思いググったものの、週末を取得して日付を減算するといったレガシーなコードを多々見掛けて、シンプルに取得できないのかと思った。

Railsのソースコードを読んでいたところ、今週の終わりの日付を取得するメソッド end_of_week の引数に曜日をセットすることが出来るような気がしたが...

今週の○曜日の日付を取得するシンプルな方法

ということで、Rails5.2で今回取得したいのは未来の今週の○曜日の日付であるとすると...

pry(Msr)> Date.today
=> Tue, 02 Oct 2018
# 次の火曜日の日付
pry(Msr)> Date.today.next_occurring(:tuesday)
=> Tue, 09 Oct 2018
# 次の金曜日の日付
pry(Msr)> Date.today.next_occurring(:friday)
=> Fri, 05 Oct 2018

過去の今週の○曜日の日付を取得したければ、

pry(Msr)> Date.today
=> Tue, 02 Oct 2018
# 前の火曜日の日付
pry(Msr)> Date.today.prev_occurring(:tuesday)
=> Tue, 25 Sep 2018
# 前の火曜日の日付
pry(Msr)> Date.today.beginning_of_week(:friday)
=> Fri, 28 Sep 2018

Rails5.2で追加された便利メソッドなので、Rubyのみはもちろん、古いRailsのバージョンでは使えません:sob:

参考

曜日を指定すると(現時点から見て)「前回その曜日だった日時」と「次回その曜日になる日時」を返すDate#prev_occurringとDate#next_occurringを追加。 (Pull Request)
https://railsguides.jp/5_2_release_notes.html

Railsで日付を取得する時に役立ちそうなリンク集

13
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?