13
我只是看看紅寶石,正在玩日期/時間的事情。與Ruby相減的日期
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不知道年份加起來是否有閏年。 我已經通過一些Google時間/日期教程,並沒有找到一個簡單的方法來減去兩個日期,並讓它在幾年,幾個月,幾天等格式返回。 我猜想ruby有一個附加組件或內置的這種東西。有人能告訴我它是什麼嗎? (另外,有什麼建議如何找到這種類型的東西的答案以供將來參考?)
謝謝。
感謝西奧:) 你的第三個建議,激發了我做的...... 需要'日期」 date_now = Date.today DOB = Date.civil(2003,10,22) 如果date_now.month> dob.month 年齡= date_now.year - dob.year ELSIF date_now.month == DOB .month && date_now.day> dob.day 年齡= date_now.year - dob.year 否則 年齡=(date_now.year - dob.year) - 1點 結束 結束 打印 「正確的年齡:」 年齡, 「\ n」 我無法真正理解你的第二個建議,並且似乎無法運行1.9來玩它。 – Leke 2010-11-14 12:20:25
是的,你說得對,當然,最後一個例子也需要考慮每月和每一天。中間示例在循環中每轉一步就會步行一年,然後計算輪次。我改變了它更正確一點。 – Theo 2010-11-14 14:45:07
對於爲什麼Ruby總是在我的日期減法之後返回'/ 1',我感到非常困惑,對於如上所述的結果執行'to_i'很重要,以便將該值作爲天數來獲取。 – waffl 2014-08-14 16:25:09