Ruby 如何计算每个月的第一个星期三的日期

Peter · 2014年09月29日 · 最后由 glz1992 回复于 2014年09月30日 · 2298 次阅读
  1. 如何确定下一个周六的日期?

目前我是这么写的:

DateTime.now.to_date + (6 - DateTime.now.to_date.wday).day
  1. 如何确定每个月的第一个星期三的日期?

目前我还没有主意,哪位高人指点一下。

2.

(1..12).each do |month|
  d = Date.new(2014, month, 1) - 1
  d += 7 - ((d.wday + 4) % 7)
  puts d
end

苯办法勿笑,坐等楼下一行流

(Date.parse('2014-10-01')..Date.parse('2014-10-07')).to_a.select{|d| d.wday == 3 }.first

不客气... 关于第一个问题,如果是 Rails 的话好像可以这样:

Date.today.beginning_of_week(:saturday) + 7
(1..12).map { |month| (3 - Date.new(2014, month, 1).wday) % 7 + 1 } # => [1, 5, 5, 2, 7, 4, 2, 6, 3, 1, 5, 3]
需要 登录 后方可回复, 如果你还没有账号请 注册新账号