두 개의 Ruby on Rails DateTime 개체가 있습니다. 그들 사이의 개월 수를 찾는 방법은 무엇입니까? (다른 해에 속할 수 있음을 명심하십시오)
답변
(date2.year * 12 + date2.month) - (date1.year * 12 + date1.month)
http://www.ruby-forum.com/topic/72120 에서 자세한 정보
답변
더 정확한 답은 멀리있는 날을 고려할 것입니다.
당신의 달 거리 것을 고려하는 경우 예를 들어, 28/4/2000
및 1/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...