ruby-on-rails - 我如何在 Ruby/Rails 中获得每月的第一个星期四?

标签 ruby-on-rails ruby

以下 Ruby 代码获取每个月的第一天:

require 'active_support/all'

# get the date at the beginning of this month
date = Date.today.beginning_of_month

# get the first day of the next 5 months
5.times do |num|
  date = date.next_month
  p date
end

给出:

=> Fri, 01 Aug 2014
=> Mon, 01 Sep 2014
=> Wed, 01 Oct 2014
=> Sat, 01 Nov 2014
=> Mon, 01 Dec 2014

但是我如何获得每个月的第一个星期四呢?即

=> Thu, 07 Aug 2014
=> Thu, 04 Sep 2014
=> Thu, 02 Oct 2014
=> Thu, 06 Nov 2014
=> Thu, 04 Dec 2014

最佳答案

不需要迭代或条件,只需得到所谓的直到下星期四的天数增量:

#4 is thursday because wday starts at 0 (sunday)

date = Date.today.beginning_of_month
date += (4 - date.wday) % 7
p date
=> Thu, 03 Jul 2014

关于ruby-on-rails - 我如何在 Ruby/Rails 中获得每月的第一个星期四?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24508787/

相关文章:

ruby-on-rails - 适合编程经验较低的人创建简单 CRUD Web 应用程序的工具?

ruby-on-rails - 从内存集合中删除项目

ruby-on-rails - 设计 gem 时过滤器链停止错误

ruby-on-rails - 无法自动加载常量 Api::V1::UsersController

ruby-on-rails - 使用 Rails 在 PaperClip 中文件上传 Base64 编码的字符串

ruby-on-rails - 在 Controller rails 中的 redirect_to 之前检查 url 的状态代码

ruby-on-rails - Date.new 的参数错误

ruby-on-rails - 如何从 RVM 配置文件指定要在 Heroku 上使用的 ruby​​ 版本

ruby-on-rails - rails/Ubuntu : SSLv3 read server certificate B: certificate verify failed

javascript - 使用 Prawn::Document 将字符串 Base64 解码为图像时,路径名包含空字节错误