如何比较Ruby中的月-年组合?

如何比较Ruby中的月-年组合?,ruby,date,comparison,monthcalendar,Ruby,Date,Comparison,Monthcalendar,我使用的是Rails 4.2.7。我有两对数字 month1 # A number between 1 and 12 year1 # a four digit year month2 # A number between 1 and 12 year2 # A four digit year 如何编写比较表达式来确定“month2-year2”组合是否大于或等于“month1-year1”组合?例如,如果month2=1,year2=2017,month1=12,year1=

我使用的是Rails 4.2.7。我有两对数字

month1   # A number between 1 and 12
year1    # a four digit year
month2   # A number between 1 and 12
year2    # A four digit year
如何编写比较表达式来确定“month2-year2”组合是否大于或等于“month1-year1”组合?例如,如果month2=1,year2=2017,month1=12,year1=2016,则month2-year2组合大于month1-year1组合

month1, month2, year1, year2 = 12, 1, 2016, 2017
=> [12, 1, 2016, 2017]
Time.new(year1, month1) >= Time.new(year2, month2)
=> false
Time.new(year2, month2) >= Time.new(year1, month1)
=> true
参考:


参考资料:

这非常简单,不需要创建日期或时间对象

def first_smaller?(ym1, ym2)
  (ym1 <=> ym2) == -1
end

first_smaller? [2016,12], [2017,1]
  #=> true
first_smaller? [2017,1], [2016,12]
  #=> false
first_smaller? [2017,1], [2017,1]
  #=> false
def first_较小?(ym1,ym2)
(ym1 ym2)=-1
结束
首先,你要小一点吗?[2016,12], [2017,1]
#=>正确
首先,你要小一点吗?[2017,1], [2016,12]
#=>错误
首先,你要小一点吗?[2017,1], [2017,1]
#=>错误
请参阅文档的第三段,了解Ruby如何对数组进行排序

如果您还想知道这两个数组是否相等,可以编写如下内容:

def ordering(ym1, ym2)
  case ym1 <=> ym2
end
def排序(ym1、ym2)
案例ym1 ym2
结束

如果
ym1
更小,则返回
-1
+1
如果
ym2
更小,或者如果数组相等,则返回
0

非常简单,不需要创建日期或时间对象

def first_smaller?(ym1, ym2)
  (ym1 <=> ym2) == -1
end

first_smaller? [2016,12], [2017,1]
  #=> true
first_smaller? [2017,1], [2016,12]
  #=> false
first_smaller? [2017,1], [2017,1]
  #=> false
def first_较小?(ym1,ym2)
(ym1 ym2)=-1
结束
首先,你要小一点吗?[2016,12], [2017,1]
#=>正确
首先,你要小一点吗?[2017,1], [2016,12]
#=>错误
首先,你要小一点吗?[2017,1], [2017,1]
#=>错误
请参阅文档的第三段,了解Ruby如何对数组进行排序

如果您还想知道这两个数组是否相等,可以编写如下内容:

def ordering(ym1, ym2)
  case ym1 <=> ym2
end
def排序(ym1、ym2)
案例ym1 ym2
结束

如果
ym1
较小,则返回
-1
+1
如果
ym2
较小或
0
,如果数组相等。

阅读此内容,如果仍然有问题,则返回。是否将月-年对存储在字符串、数组或其他内容中?欢迎使用堆栈溢出。你试了什么?请阅读“包括链接页面”和“连同”。如果没有证据表明您正在努力解决此问题,您似乎希望我们为您解决此问题。请阅读此内容,如果您仍有疑问,请返回。是否将您的月-年对存储在字符串、数组或其他内容中?欢迎使用堆栈溢出。你试了什么?请阅读“包括链接页面”和“连同”。如果没有证据表明您为解决此问题所做的努力,看起来您希望我们为您做这件事。您也可以使用
Date.new
,但想法是一样的。您也可以使用
Date.new
,但想法是一样的