用Ruby减去日期
发布时间:2020-12-16 19:49:32 所属栏目:百科 来源:网络整理
导读:我只是看着红宝石,正在玩日期/时间的事情. irb(main):001:0 jamis_DOB = Time.mktime(2003,10,22,06,59)= Wed Oct 22 06:59:00 +0300 2003irb(main):002:0 age = Time.now - jamis_DOB= 222934108.172989irb(main):005:0 age_in_years = (((age / 3600) / 24
我只是看着红宝石,正在玩日期/时间的事情.
irb(main):001:0> jamis_DOB = Time.mktime(2003,10,22,06,59) => Wed Oct 22 06:59:00 +0300 2003 irb(main):002:0> age = Time.now - jamis_DOB => 222934108.172989 irb(main):005:0> age_in_years = (((age / 3600) / 24) / 365).to_i => 7 所以我的例子不如age_in_years那么好,不知道那些年份是否有闰年. 谢谢. 解决方法
你想要
Date 而不是
Time :
require 'date' now = Date.today before = Date.civil(2000,1,1) difference_in_days = (now - before).to_i (difference_in_days/365.25).to_i 将给你2000年1月1日之间的差距.可能会有所改善,我刚刚使用了每年的平均天数(365.25),这将给你正确的答案,除了极端的情况. 你也可以这样做: require 'date' years = 0 d = Date.civil(2000,1) loop do d = d.next_year break if Date.today < d years += 1 end 但是Date#next_year是在Ruby 1.9中引入的,所以它在1.8.7中不起作用. 当然,确定两个日期之间的年数的最简单的方法就是减去数字: 2010 - 2000 # => 10 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |