ruby-on-rails – 如何计算Ruby中的给定日期后多少年?
发布时间:2020-12-16 19:49:17 所属栏目:百科 来源:网络整理
导读:这个问题在这里是为其他语言,所以让这里是一个 Ruby. 如何计算从给定日期过去的完整年数?你可能已经猜到了,那就是自动计算人的年龄.最近的一个是distance_of_time_in_words Rails帮手,所以下面的模板 Jack is %= distance_of_time_in_words (Time.now,Time.
这个问题在这里是为其他语言,所以让这里是一个
Ruby.
如何计算从给定日期过去的完整年数?你可能已经猜到了,那就是自动计算人的年龄.最近的一个是distance_of_time_in_words Rails帮手,所以下面的模板 Jack is <%= distance_of_time_in_words (Time.now,Time.local(1950,03,22)) %> old. 产量 Jack is over 59 years old. 但是我需要更精确的功能,只产生数字.有没有 如果存在某种Ruby on Rails帮助器函数,这是可以的,虽然纯Ruby解决方案会更好. 编辑:问题的要点是需要非近似解决方案. 3月2日,杰克应该是59岁,第二天他应该是60岁.应考虑闰年等. 解决方法
你想要年龄,因为人们通常会理解它,还是要寻找一个精确的时间量度?如果是前者,就没有必要担心闰年和其他并发症.您只需要计算年数差异,如果该人今年还没有生日,则减少它.如果是后者,你可以将秒数转换成多年,正如其他答案所建议的那样.
def age_in_completed_years (bd,d) # Difference in years,less one if you have not had a birthday this year. a = d.year - bd.year a = a - 1 if ( bd.month > d.month or (bd.month >= d.month and bd.day > d.day) ) a end birthdate = Date.new(2000,12,15) today = Date.new(2009,14) puts age_in_completed_years(birthdate,today) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |