中間の日付(Time
, Date
, DateTime
)の取得
日付A〜日付Bのちょうど真ん中の日付が必要な時に.
コード例
started_on = Date.new(2015, 4, 1)
ended_on = Date.new(2015, 7, 31)
[*started_on..ended_on].tap { |r| break r[r.size / 2] }
# => Mon, 01 Jun 2015
例ではDate
を用いているが,DateTime
やTime
でもつかえる…はず.
いつ使うんだこんなの.
解説
-
[*started_on..ended_on]
: 2つの日付をRange
化し,配列に変換 -
range.tap { |r| break r[r.size / 2] }
tap
内break
で値が返ることを利用し,rangeの中間を得る