rubyで特定の曜日の日付を表示する。
http://www.rubylife.jp/ini/date_class/index1.html
Dateクラス
http://tbpgr.hatenablog.com/entry/2015/07/30/233852
201507-30
てぃーびーの Ruby 練習帳 | 特定の月の特定の曜日の日付配列を取得し、特定のフォーマットで出力する
(1)Dateクラスを使うには、まず、
[sourcecode language='ruby' padlinenumbers='true'] require 'date' [/sourcecode]
の一文を記述する必要があるとのこと。
(2)本日の日付
[sourcecode language='ruby' ] base = Date.today [/sourcecode]
(3)select (Array)
[sourcecode language='ruby' ] array.select {|item| block } [/sourcecode]
selectメソッドは、条件に合う要素を探して集める。
ブロック引数itemに要素を入れながらブロックを繰り返し、ブロックの戻り値が真になったときの要素を集め、新しい配列にして返す。
[sourcecode language='ruby' ] numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] p numbers.select {|item| item % 2 == 0 } #結果 [2, 4, 6, 8, 10] [/sourcecode]
参考:http://ref.xaio.jp/ruby/classes/array/select
(4)rails4での記載方法
$ rails generate controller StaticPages home help
app/controllers/static_pages_controller.rb
[sourcecode language='ruby' ] class StaticPagesController < OperationsController def home @operations = Operation.all require 'date' base3 = Date.today @tuesdays = (base3...base3.next_month).select{ |e| e.tuesday? } @wednesdays = (base3...base3.next_month).select{ |e| e.wednesday? } @fridays = (base3...base3.next_month).select{ |e| e.friday? } @operation_weekdays = (base3...base3.next_month).select{ |e| e.tuesday? || e.wednesday? || e.friday? } end def help end end [/sourcecode]
app/views/static_pages/home.html.erb
[sourcecode language='ruby' ] <h1>StaticPages#home</h1> <p>特定の曜日のリストを表示する</p> <div> <% @fridays.each do |e| %> <li><%= e.strftime('%Y/%m/%d (金)') %></li> <% end %> <div> </br> <div> <% @operation_weekdays.each do |e| %> <li><%= e.strftime("%Y/%m/%d(#{%w(日 月 火 水 木 金 土)[e.wday]})") %></li> <% end %> <div> [/sourcecode]
ブラウザで、localhost:3000/static_pages/home
本当は、これらにリンクを張りたいが、難しいか、、、
参考:
●201507-30てぃーびーの Ruby 練習帳 | 特定の月の特定の曜日の日付配列を取得し、特定のフォーマットで出力する
http://tbpgr.hatenablog.com/entry/2015/07/30/233852
●日付に曜日を表示する。
http://qiita.com/hisa0507/items/8209448f1e3e20b96b52
created_atなどに日本語曜日入り日付フォーマットを1行で書く
hisa0507が2012/11/30に投稿(2012/11/30に編集)
●Rubyリファレンス
select (Array)
標準クラス・モジュール > Array > select
array.select {|item| block }
http://ref.xaio.jp/ruby/classes/array/select
●「その他」用のテキスト入力欄を持つ選択式入力欄2016/02/08
http://www.oiax.jp/rails/rails_exercises/quiz03.html