Techioz Blog

来週の月曜日(または曜日)の日付を取得する Ruby コード

概要

たとえば、次のような入力があるとします。

day = 'Monday'

次の日の日付を計算するにはどうすればよいですか?

def date_of_next(day)
  ...
end

解決策

require 'date'

def date_of_next(day)
  date  = Date.parse(day)
  delta = date > Date.today ? 0 : 7
  date + delta
end

Date.today
#=>#<Date: 2011-10-28 (4911725/2,0,2299161)>
date_of_next "Monday"
#=>#<Date: 2011-10-31 (4911731/2,0,2299161)>
date_of_next "Sunday"
#=>#<Date: 2011-10-30 (4911729/2,0,2299161)>