私はイベントの配列を持っていて、event_date(Timeオブジェクトを返す)に基づいてそれらを2次元配列に分割したいと考えています。しかし、私はそれが日付の日の一部であることを望んでいます。これまで私が持っていたことは次のとおりです。曜日の日付順に並べ替えるのにはどのような方法がありますか?
def divide_events_by_day(events)
# Sort, so we can start with the first day.
events = events.sort { |x,y| x.event_date <=> y.event_date }
days = []
current_date = events[0].event_date # A Time object.
# With meaningful hours and minutes.
while events.length > 0 do
# Find events for the current date.
day_events = events.select { |e|
(e.event_date.year == current_date.year) &&
(e.event_date.yday == current_date.yday)
}
# Move them to their subarray.
days << day_events
events = events - day_events
# Advance the current_date by one day.
current_date = (current_date + (60 * 60 * 24))
end
days
end
もっと簡単にするには?
より良いアプローチ、==でなければなりません。また、年ごとの内訳にコードを追加する必要はありません。 –
日付時刻#日付は日付部分だけです。うーん。ピックアックスにはないが、それは私のために働く。私はそれが私がロードされているいくつかの拡張、または標準だが、私の死んだ木の本よりも新しいのだろうかと思う... – MarkusQ
@ sambo99それらをキャッチするためにありがとう;私はマルチタスクをしています。私は修正プログラムを適用し&ここであなたに変更ログのクレジットを与える。 – MarkusQ