スポンサーリンク

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

image

本当は、これらにリンクを張りたいが、難しいか、、、

 

参考:

●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

スポンサーリンク