ruby-on-rails - Rails 以月为单位计算日期范围

标签 ruby-on-rails ruby ruby-on-rails-3 date

如何计算两个日期的月差?此外,如果它有所作为,我正在使用 Date 对象,而不是 DateTime。此外,一些舍入选项可能会很好,这样我就可以控制是否要对部分月份进行向上或向下舍入。

谢谢!

最佳答案

从一个 Date 或 DateTime 中减去另一个 Date 或 DateTime 将得到天数的分数,但这可以根据需要评估为 FloatFixnum

例如:

(Date.today - Date.today.advance(:months => -3)).to_f
# => 89.0

今天与三个月前的同一日历日期之间相隔 89.0 天。如果您使用 30 天的月份或平均 30.4375 个月来计算,那么您最终会得到从那时到现在已经过去 2.92 个月,或者四舍五入到最接近的整数 3。

如果您想计算精确的日历月数,那会比较棘手,但可以做到。

关于ruby-on-rails - Rails 以月为单位计算日期范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5887756/

相关文章:

ruby-on-rails - 在 Devise on Rails 中使用单独的身份验证模型

ruby-on-rails - bundle 安装在 ./mysql2 文件夹中安装 gems

ruby-on-rails - 将局部变量传递给在 View 加载后呈现的局部变量

ruby - Emacs shell 找不到 ruby​​ gems——例如,找不到 RubyGem haml (>= 0) (Gem::LoadError)

ruby - 如何在 Ruby 中合并多个哈希值?

ruby-on-rails - 如何通过Rails中的另一个模型访问关联模型?

ruby-on-rails - 对于 Mac OS X 10.9.1,将 pg gem 从 0.17.0 更新到 0.17.1 时出错

ruby-on-rails - Rails 'to_sql' 没有 '\'

ruby-on-rails - Heroku 广告横幅?

ruby - 有没有办法在 block 内重新定义方法?