Ruby下个月的第一个工作日

时间:2015-10-09 21:33:20

标签: ruby date time

我正试图访问下个月的第一个工作日。例如,如果月末是星期六或星期日,我想吐出下一个星期一的日期,否则,我希望它只返回该月的第一天。到目前为止,我可以通过

访问下个月的第一天

{{1}}。

提前致谢!!

2 个答案:

答案 0 :(得分:1)

business_time宝石是完美的。

https://github.com/bokmann/business_time

首先安装所需的宝石

require 'active_support/core_ext'
require 'business_time'

现在我们可以结束本月

month_end = Date.today.end_of_month

现在,为了获得下个月的第一个工作日,只需执行此操作

1.business_days.after(month_end)

答案 1 :(得分:1)

require 'date'

def next_month_1st_bday
  t = Date.today
  d = Date.new(t.year, t.month, -1)  # last day of current month
  d += 1 until d.wday.between?(1, 5) # no 0 (sunday) or 6 (saturday)
  d
end

p next_month_1st_bday # => #<Date: 2015-11-02 ((2457329j,0s,0n),+0s,2299161j)>