2011-05-13 3 views
1

가능한 중복 : 나는 사람이 얼마나 많은 세를 나타내는 값으로 데이터베이스에서 찍은 날짜 스탬프를 변환하려고
How to calculate how many years passed since a given date in Ruby?루비는 루비 오래된 년에 날짜 스탬프를 변환

. 나는 이것이 쉽다는 것을 확신하지만, 나는 그것을 이해하는 것처럼 보이지 않는다. 날짜 기록을 가정

+1

* * 항상 * 당신이 시도한 것을 보여주는 몇 가지 소스 코드를 추가하는 데 도움이됩니다. –

답변

2

는 날짜 시간 값으로 검색되고 :

require 'date' 

birth_date = DateTime.parse('1970-01-01 1:35 AM') 
time_now = DateTime.now 

(time_now - birth_date).to_i/365 # => 41 
(time_now - birth_date).to_f/365 # => 41.38907504054664 

birth_date 당신이 당신의 데이터베이스에서 검색해야 무엇을위한 모의 값입니다. 첫 번째 값은 연도이고, 두 번째 값은 소수 부분의 연도입니다.

다른 방법으로는, 당신은이 방법을 수행 할 수 있습니다

이 사람이 아직 생일이 있었다하지 않은 경우에 조정
years = time_now.year - birth_date.year 
years -= 1 if (birth_date.month > time_now.month) 
years # => 41 

. 예를 들어, 생일 조정 :

birth_date = DateTime.parse('1970-12-31 11:59 PM') 
years = time_now.year - birth_date.year 
years -= 1 if (birth_date.month > time_now.month) 
years # => 40 
+0

윤년에는 문제가 없습니다. 그것은 단지 빠르고 더러운 가치입니다. –