2016-10-11 8 views
-1

레일 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

스택 오버플로에 오신 것을 환영합니다. 너 무슨 짓을 한거야? "[mcve]"와 "[Stack Overflow 사용자에 대한 연구 노력이 얼마나 필요합니까?] (http://meta.stackoverflow.com/q/261592)"링크 된 페이지를 포함하여 "[ask]"를 읽으십시오. " . 이 문제를 해결하려는 노력의 증거가 없다면 우리가 당신을 위해 그것을하기를 바라는 것처럼 보입니다. –

답변

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 

: 당신은 또한 두 배열이 동일한 경우 알고 싶은 경우

, 다음과 같이 쓸 수 같다.