[ruby-on-rails] Ruby on Rails에서 두 날짜 사이의 개월 수 찾기

두 개의 Ruby on Rails DateTime 개체가 있습니다. 그들 사이의 개월 수를 찾는 방법은 무엇입니까? (다른 해에 속할 수 있음을 명심하십시오)



답변

(date2.year * 12 + date2.month) - (date1.year * 12 + date1.month)

http://www.ruby-forum.com/topic/72120 에서 자세한 정보


답변

더 정확한 답은 멀리있는 날을 고려할 것입니다.

당신의 달 거리 것을 고려하는 경우 예를 들어, 28/4/20001/5/2000입니다 0보다는 1, 당신은 사용할 수 있습니다 :

(date2.year - date1.year) * 12 + date2.month - date1.month - (date2.day >= date1.day ? 0 : 1)


답변

시도해보십시오

((date2.to_time - date1.to_time)/1.month.second).to_i


답변

질문을 “날짜의 시작일 사이에 첫 번째 날이 몇 일인지”로 바꾸고 함수 스타일 데이터 변환을 사용할 수 있습니다.

(date1.beginning_of_month...date2.beginning_of_month).select { |date| date.day == 1 }.size


답변

둘 다 날짜라고 가정하면
((date2 - date1).to_f / 365 * 12).round
간단합니다.


답변

start_date = Date.today
end_date   = Date.today+90
months = (end_date.month+end_date.year*12) - (start_date.month+start_date.year*12)

//months = 3


답변

내가 찾은 또 다른 솔루션 (이미 여기에 게시 된 솔루션으로 구축 됨)은 결과에 한 달의 분수를 포함하려는 경우입니다. 예를 들어 거리는입니다 1.2 months.

((date2.to_time - date1.to_time)/1.month.second).round(1) #Tenth of a month Ex: 1.2
((date2.to_time - date1.to_time)/1.month.second).round(2) #Hundreth, ex: 1.23 months
etc...