ruby-on-rails - 如何检查日期范围是否在Ruby中的另一个日期范围之间
问题描述
所以我有一个可能类似于的日期范围,((Date.today - 90)..Date.today)
我想检查是否(Date.today - 90)
在另一个日期范围中的第一个值之后,并且在日期范围Date.today
中的最终值之前。我已经尝试了以下
((Date.parse('25-12-2000')..(Date.parse('25-12-2020')).include?((Date.today - 90)..Date.today)
这返回错误。如果我替换include?
为member?
或,我也会得到错误cover?
我如何让它返回 true?语法更改还是我需要在 Ruby 中使用不同的方法?
解决方案
您可以使用cover?
检查日期范围是否涵盖这两个值:
range = Date.new(2000, 12, 25)..Date.new(2020, 12, 25)
range.cover?(Date.today - 90) && range.cover?(Date.today)
#=> true
range = Date.new(2000, 12, 25)..Date.new(2020, 12, 25)
other = (Date.today - 90)..Date.today
range.cover?(other.begin) && range.cover?(other.end)
#=> true
推荐阅读
- python - 有人知道富时指数雅虎金融的股票代码吗?
- vb.net - 在图表中显示时间戳而不是日期 - SQL
- splunk-query - splunk查询以表格式转换时不显示所有记录
- google-signin - Google 登录 API 可以免费使用吗?
- r - 使用 dplyr 重塑数据:使用附加标签将 2 列转换为 1 列(替代方法)
- vba - 未创建 VBA 对象?
- solr - Solr Facet Alpha 数字排序与分数和小数
- angular - 将数组中的项目从打字稿中的最后一个位置移动到第一个位置
- python - 上传时获取文件修改日期
- node.js - 非常基本的 https 服务器