我正在尝试计算两个日期之间的天数差异(整数)。如果它是负整数,如何处理差异?
这是我的代码示例。
expiry_date是通过JSON响应填充的
expiry_date #e.g - 2019-04-01
def calculate_date_difference
(expiry_date - Date.today).to_i
end
if calculate_date_difference.between?(0,90)
puts "90 days or less"
elsif calculate_date_difference > 90
puts "more than 90 days"
else
puts "past"
end
当expiry_date在将来时,该代码可以正常工作,但是,如果到期时间在过去,则它会一直处于错误的状态。例如,在此示例中的区别是“ -9”。
我希望它可以打印“过去”,但始终可以打印“少于90天”
谢谢
答案 0 :(得分:1)
我想这与您的代码库中未提供的内容有关,但通常来说,当前的逻辑可以处理它。更新的示例显示了它:
require 'date'
expiry_date = Date.new(2019,4,1)
def calculate_date_difference(expiry_date)
(expiry_date - Date.today).to_i
end
message = if calculate_date_difference(expiry_date).between?(0,90)
"90 days or less"
elsif calculate_date_difference(expiry_date) > 90
"more than 90 days"
else
"past"
end
message == "past" # true