LoginSignup
22
21

More than 5 years have passed since last update.

1年間に存在する金曜日と土曜日の日数を簡単にカウントする方法

Last updated at Posted at 2015-02-20

やりたいこと

2014年に存在する金曜日と土曜日の日数を数えたい。

方法

rails consoleでこんなふうにコードを打ち込みます。

cd (Railsアプリがあるディレクトリ)
rails c
Loading development environment (Rails 4.2.0)
irb(main):001:0> '2014-01-01'.to_date.all_year.count{|d| d.friday? or d.saturday? }
=> 104

どうやら2014年の金曜日と土曜日は 104日 あるみたいです!

コードの解説

String#to_dateDate#all_yearはRailsで提供されている便利メソッドです。

to_dateは文字列をDate型に変換し、all_yearはその年の1月1日から12月31日までのRangeを返します。

irb(main):018:0> date = '2014-01-01'.to_date
=> Wed, 01 Jan 2014
irb(main):019:0> range = date.all_year
=> Wed, 01 Jan 2014..Wed, 31 Dec 2014

Enumerable#countはその名の通り、コレクションの中から特定の条件に合致するオブジェクトの個数を数えるRubyの標準メソッドです。

また、Date#friday?Date#saturday?もその名の通り、金曜日、もしくは土曜日であればtrueを返すRubyの標準メソッドです。

つまり、以下のコードは1年間の日付の中で、金曜日、または土曜日に合致する日付の個数を数えるコードになります。

irb(main):021:0> range.count{|d| d.friday? or d.saturday? }
=> 104

上記のコードをひとまとめに書くと最初に示したコードができあがります。

irb(main):001:0> '2014-01-01'.to_date.all_year.count{|d| d.friday? or d.saturday? }
=> 104

まとめ

RubyとRailsのメソッドって本当に便利!!

日常的なちょっとした疑問にも簡単に答えが出せますね~。

あわせて読みたい

以下の記事では日付や日時の扱いの注意事項をまとめています。

おまけ:なんで金曜日と土曜日の日数を数えてるの?

なぜ金曜日と土曜日の日数を数えようと思ったのか?
それは僕の妻がやっているパン屋さんの営業日が金曜日と土曜日だからです・・・。

ちょっと所用で営業日の日数を数える必要があったのでこんなコードを書いていたのでした。

http://coupe-baguette.com/
Screen Shot 2015-02-21 at 8.00.21.png

22
21
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
22
21