もちろん自分でこれを行うこともできますが、Rubyに組み込みの機能、またはライブラリがあり、このようなことができます。
date = Time.now
sunday = date.week.first_day
saturday = date.week.last_day
ありがとう
もちろん自分でこれを行うこともできますが、Rubyに組み込みの機能、またはライブラリがあり、このようなことができます。
date = Time.now
sunday = date.week.first_day
saturday = date.week.last_day
ありがとう
ActiveSupport gemを使用します。ただし、月曜日が週の始まりと見なされます。
require 'active_support'
d = Date.today # => Mon, 25 Jan 2010
sun = d.beginning_of_week - 1.day # => Sun, 24 Jan 2010
sat = d.end_of_week - 1.day # => Sat, 30 Jan 2010
今日が日曜日の場合は、さらに作業が必要です
def week_ends(date)
sun = date.beginning_of_week - 1.day
sat = date.end_of_week - 1.day
if date.sunday?
sun += 1.week
sat += 1.week
end
[sun, sat]
end
p d = Date.today
p week_ends(d)
p d = Date.yesterday
p week_ends(d)
結果は
Mon, 25 Jan 2010
[Sun, 24 Jan 2010, Sat, 30 Jan 2010]
Sun, 24 Jan 2010
[Sun, 24 Jan 2010, Sat, 30 Jan 2010]
日は 0..6 で表され、日曜日は 0 です。
date = Time.now
puts date.wday
今日の週番号コードを出力します。
何を達成しようとしていますか?
1 日の秒数を足したり引いたりすると、ちょうど今から 1 日後の別の日付になります。
date = Time.now
puts date + 86400 #will be tomorrow