ちまたでプレミアムフライデーが話題になってたので、Railsでプレミアムフライデーの日付を取得するメソッドを作った。
def next_premium_friday
now = DateTime.now
premium_friday = this_month_premium_friday(now)
if now > premium_friday
premium_friday = this_month_premium_friday(now + 1.month)
end
premium_friday
end
# 指定された日付と同じ月の月末の金曜日を取得するメソッド
def self.this_month_premium_friday(datetime)
end_of_month = datetime.end_of_month
case end_of_month.wday
when 0..4
difference_wday = -2 - end_of_month.wday
when 5..6
difference_wday = 5 - end_of_month.wday
end
premium_friday = end_of_month + difference_wday.day
end