これはそれを行う1つの方法です:
date_array_1, date_array_2 = [
'January 01, 08:00', 'January 01, 12:00',
'January 01, 09:00', 'January 01, 10:00'
].map{ |s| DateTime.parse(s) }.each_slice(2).to_a
これにより、日付の2つの配列が設定されます。
require 'date'
def date_ranges(ary1, ary2)
[
ary1,
ary2
].flatten.sort.each_slice(2).map{ |s| s.first .. s.last }
end
puts date_ranges(date_array_1, date_array_2)
どの出力:
2013-01-01T08:00:00+00:00..2013-01-01T09:00:00+00:00
2013-01-01T10:00:00+00:00..2013-01-01T12:00:00+00:00
date_array_2を日付の配列にしたい場合は?簡単ですか?like date_array_1 = ['January 01、08:00'、'January 01、13:00'] date_array_2 = [['January 01、09:00'、'January 01、10:00']、['January 01、 11:00'、'1月1日12:00']]
2つの日付配列は次のようになります。
date_array_1 = ['January 01, 08:00', 'January 01, 12:00']
date_array_2 = ['January 01, 09:00', 'January 01, 10:00']
それらをDateTimeオブジェクトに強制変換します。
[ date_array_1, date_array_2 ].map{ |a| a.map!{ |d| DateTime.parse(d) } }