我的主要問題是您將如何寫“3 年/ 5 年”我的日期是expiry_date。我需要知道這個日期是否在 3 到 5 歲之間。希望這個問題有意義:)
if expiry_date > 3 years && expiry_date < 5 years
這expiry_date只是一種Date格式
uj5u.com熱心網友回復:
只是 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
uj5u.com熱心網友回復:
可以用紅寶石蓋嗎?使用 ActiveSupport gem 驗證范圍的方法:
require "active_support/core_ext/integer/time"
(5.years.ago..3.years.ago).cover?(expiry_date)
uj5u.com熱心網友回復:
使用 ActiveSupport gem 排除開始和結束
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)
in?ActiveSupport中也有方法
expiry_date.in?(5.years.ago..3.years.ago)
uj5u.com熱心網友回復:
ActiveSupport我現在看到加載執行相對簡單的任務的充分理由。此外,編碼人員可能不熟悉該 gem。
require 'date'
def expiry_date_check(expiry_date)
today = Date.today
yr, mon, day = today.year, today.month, today.day
expiry_date.between?(Date.new(yr-5, mon, day) 1, Date.new(yr-3, mon, day)-1)
end
Date.today
#=> #<Date: 2022-09-13 ((2459836j,0s,0n), 0s,2299161j)>
expiry_date_check(Date.new(2017, 1, 1)) #=> false
expiry_date_check(Date.new(2017, 9, 13)) #=> false
expiry_date_check(Date.new(2017, 9, 14)) #=> true
expiry_date_check(Date.new(2018, 1, 1)) #=> true
expiry_date_check(Date.new(2019, 9, 12)) #=> true
expiry_date_check(Date.new(2019, 9, 13)) #=> false
expiry_date_check(Date.new(2020, 1, 1)) #=> false
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/507559.html
標籤:红宝石
