2016-10-11 9 views
-1

私はRails 4.2.7を使用しています。私は、「MONTH2-YEAR2」の組み合わせがより大きいまたは「MONTH1-YEAR1」の組み合わせに等しいかどうかを決定するために比較式を書くにはどうすればよいの数の二対...Rubyで月と年の組み合わせを比較するにはどうすればよいですか?

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 = 1、year2 = 2017、month1 = 12、year1 = 2016の場合、month2-year2の組み合わせはmonth1-year1の組み合わせよりも大きくなります。

+1

このhttps://ruby-doc.org/core-2.2.0/Time.htmlを読んで、まだ質問がある場合は戻ってください。 – bjhaid

+0

月 - 年のペアを文字列や配列などで保存していますか? ? –

+2

ようこそスタックオーバーフロー。何を試しましたか?リンクされたページを含む「[ask]」、「[Stack Overflowユーザーにはどの程度の研究努力が必要ですか?](http://meta.stackoverflow.com/q/261592)」と一緒に「[mcve]」とお読みください。 。これを解決するためのあなたの努力の証拠がなければ、私たちがあなたのためにそれをしたいと思うように見えます。 –

答えて

1

それは非常に簡単ですし、日付や時刻オブジェクトを作成する必要はありません。

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 

は、Rubyの配列を発注方法を確認するためにArray#<=>ためにドキュメントの第三段落を参照してください。 ym2が配列であれば小さいか0+1場合、ym1が小さけれ-1あれば返し

def ordering(ym1, ym2) 
    case ym1 <=> ym2 
end 

:あなたはまた、2つの配列が同等であるかどうかを知りたい場合は

、次のようなものを書くことができますは同じ。

関連する問題