`
jsntghf
  • 浏览: 2483018 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

ruby计算年龄--为何我多了一岁?

阅读更多

也许你认为ruby计算年龄很简单,但出于某些原因,其实并非如此。我们一般会将用户的生日存在一个DATE类型的字段里。


现在,我们一起来计算用户的年龄。

 

 def age
    Date.today.year - person.birthday.year
 end

 

这个方法对部分用户来说,完全没有问题。但是,为什么某些用户会凭空多出了一岁呢?


例如下面这种情况:今天是2008年1月3日,用户的生日是1979年1月14日,这种方法算出来是29岁,该用户实际是28岁。

 

因此我们需要一个更精确的方法来计算用户的年龄。

 

def age
    ((Date.today - person.birthday.to_date) / 365).floor
end

 

分享到:
评论
2 楼 222xiaohuan 2009-11-20  
1 楼 pure 2009-11-20  
果真如此么?

相关推荐

Global site tag (gtag.js) - Google Analytics