如何检查日期是否在从日期起3年和5年的时间范围内

mbjcgjjk  于 2022-09-21  发布在  Ruby
关注(0)|答案(3)|浏览(179)

我的主要问题是你怎么写“3年/5年”我有的日期是到期日期。我想知道这个日期是不是在3到5岁之间。希望这个问题有意义**:)**

if expiry_date > 3 years && expiry_date < 5 years

expiry_date只是Date格式

xxls0lw8

xxls0lw81#

只有Ruby(所以没有ActiveSupport):

require 'date'

today = Date.today
a_date = Date.new(2019,1,1)
p a_date.between?(today.prev_year(5), today.prev_year(3)) # => true
4szc88ey

4szc88ey2#

你可以用Ruby封面吗?使用ActiveSupport GEM验证范围的方法:

require "active_support/core_ext/integer/time"

(5.years.ago..3.years.ago).cover?(expiry_date)
lf5gs5x2

lf5gs5x23#

使用ActiveSupport gem,不包括Begin和End

require "active_support/core_ext/integer/time"

expiry_date < 3.years.ago && expiry_date > 5.years.ago

如果需要包括此范围的开始和结束

(5.years.ago..3.years.ago).include?(expiry_date)
expiry_date.between?(5.years.ago, 3.years.ago)

ActiveSupport中也有in?方法

expiry_date.in?(5.years.ago..3.years.ago)

相关问题