お世話になっております。
今日から2週間のうち、指定の曜日selectedDay
を取り出して、
最終的にその開始時間start_at
から終了時間までを30分ごとtime
で配列で
取得したいと考えています。
現在はrails c
で開かれるirbのコンソール上で試しています。
参考URL:http://www.tom08.net/entry/2017/05/28/115605
使っているライブラリ
Rails 5.2
エラー
* 曜日のdateを数値に変換することができない * list_dateを実行しても期待通りの結果が得られない [32] pry(main)> start_at = '10:00' => "10:00" [33] pry(main)> end_at = '20:00' => "20:00" [43] pry(main)> list_date = ['2018-10-1', '2018-10-3'] => ["2018-10-1", "2018-10-3"] [45] pry(main)> time = 30 => 30 [47] pry(main)> list_date.each do |date| [47] pry(main)* increment = time.to_i [47] pry(main)* from_time = start_at.to_i [47] pry(main)* to_time = end_at.to_i [47] pry(main)* from_time.step(to_time, increment).map { [47] pry(main)* |m| confirmTime = date + Time.at(m).strftime('%H:%M'[47] pry(main)* |m| confirmTime = date + Time.at(m).strftime('%H:%M') [47] pry(main)* puts confirmTime [47] pry(main)* } [47] pry(main)* end 2018-10-109:00 2018-10-309:00 => ["2018-10-1", "2018-10-3"]
想定成果物
2018/10/1 10:00 2018/10/1 10:30 2018/10/1 11:00 2018/10/1 11:30 2018/10/1 12:00 ・・・ 2018/10/3 10:00 2018/10/3 10:30 2018/10/3 11:00 2018/10/3 11:30 ・・・
ソースコード
Ruby
1 fixed_date = [] 2 confirm_date = [] 3 selected_day = ['mon', 'tues', 'wed'] 4 start_at = '10:00' 5 end_at = '20:00' 6 time = 30 7 8 first_date = Date.today 9 end_date = first_date.since(2.weeks) 10 11 available_date.each do |day| 12 # dayが従来曜日で取れているが、これを数値に変換するためにはどうすれば良いか 13 (first_date..end_date).select{|d| d.wday == day}.each do |date| 14 list_date.push(date.strftime("Y-m-d")) 15 end 16 end 17 18 list_date.each do |date| 19 increment = time.to_i 20 from_time = start_at.to_i 21 to_time = end_at.to_i 22 from_time.step(to_time, increment).map { 23 |m| confirmTime = date + Time.at(m).strftime('%H:%M') 24 confirm_date.push(confirmTime) 25 } 26 end
start_at, end_atが参考URLの内容とは全然違うクラスになっていますよね…。また、部分的に抜き出されたコードのようですし、使用しているライブラリもわかりません。質問に記載してください。
失礼いたしました。またご指摘ありがとうございました統一し、またライブラリは使用していません。
いや、思いっきり使ってますよ。 2.weeksなどのように記述できるのはactive_supportですね。つまり、Railsです。
大変申し訳ございませんでした。再度書き直します
そもそもこのソースコードがRailsのソースコードの一部分なので、普通にやっても動かないはずですよね。さらにlist_dateの宣言がなかったり…。試したことと問題点を明確に書いてください。irbのサンプルコードの話だけなら、その部分だけを質問したい旨を書いたほうがいいです。
申し訳ございませんでした。ご指摘の通りです。反省いたします。。
回答1件
あなたの回答
tips
プレビュー