如何查找兩個Date對象之間的天數?如何查找Ruby中兩個Date對象之間的天數?
110
A
回答
140
從結束日期減去開始日期:
endDate - beginDate
5
試試這個:
num_days = later_date - earlier_date
88
irb(main):005:0> a = Date.parse("12/1/2010")
=> #<Date: 4911063/2,0,2299161>
irb(main):007:0> b = Date.parse("12/21/2010")
=> #<Date: 4911103/2,0,2299161>
irb(main):016:0> c = b.mjd - a.mjd
=> 20
這將使用Modified Julian Day Number。
Julian日期(JD),是自1月1日的天數,每天的分數間隔時間,4713 BC格林威治中午,儒略曆proleptic。
4
所有這些把我領到了正確的結果,但我清盤做
DateTime.now.mjd - DateTime.parse("01-01-1995").mjd
40
這可以用Ruby 2.0
已經改變了。當我這樣做,我得到一小部分。例如在控制檯上(無論是IRB或滑軌C)
2.0.0-p195 :005 > require 'date'
=> true
2.0.0-p195 :006 > a_date = Date.parse("25/12/2013")
=> #<Date: 2013-12-25 ((2456652j,0s,0n),+0s,2299161j)>
2.0.0-p195 :007 > b_date = Date.parse("10/12/2013")
=> #<Date: 2013-12-10 ((2456637j,0s,0n),+0s,2299161j)>
2.0.0-p195 :008 > a_date-b_date
=> (15/1)
當然,鑄造爲int得到期望的結果
2.0.0-p195 :009 > (a_date-b_date).to_i
=> 15
這也適用於datetime對象,但你必須要考慮到考慮秒,諸如本實施例中
2.0.0-p195 :017 > a_date_time = DateTime.now
=> #<DateTime: 2013-12-31T12:23:03-08:00 ((2456658j,73383s,725757000n),-28800s,2299161j)>
2.0.0-p195 :018 > b_date_time = DateTime.now-20
=> #<DateTime: 2013-12-11T12:23:06-08:00 ((2456638j,73386s,69998000n),-28800s,2299161j)>
2.0.0-p195 :019 > a_date_time - b_date_time
=> (1727997655759/86400000000)
2.0.0-p195 :020 > (a_date_time - b_date_time).to_i
=> 19
2.0.0-p195 :021 > c_date_time = a_date_time-20
=> #<DateTime: 2013-12-11T12:23:03-08:00 ((2456638j,73383s,725757000n),-28800s,2299161j)>
2.0.0-p195 :022 > a_date_time - c_date_time
=> (20/1)
2.0.0-p195 :023 > (a_date_time - c_date_time).to_i
=> 20
20
在Ruby 2.1.3事情發生了變化:
> endDate = Date.new(2014, 1, 2)
=> #<Date: 2014-01-02 ((2456660j,0s,0n),+0s,2299161j)>
> beginDate = Date.new(2014, 1, 1)
=> #<Date: 2014-01-01 ((2456659j,0s,0n),+0s,2299161j)>
> days = endDate - beginDate
=> (1/1)
> days.class
=> Rational
> days.to_i
=> 1
-1
days =(endDate - beginDate)/(60 * 60 * 24)
5
這個怎麼樣?
(beginDate...endDate).count
該範圍是一套獨特的連續劇。 和...
是一個獨特的範圍文字。因此beginDate..(endDate - 1)
是相同的。不是。
在情況下,當BEGINDATE等於結束日期,第一元件將被排除的,因爲唯一性和...
將排除最後一個。因此,如果我們想今天和今天之間.count
日期則返回0。
2
這爲我工作:
(endDate - beginDate).to_i
相關問題
- 1. 兩個NSDate對象之間的天數
- 2. 如何查找兩個日期/ DateTimePickers之間的天數
- 3. 如何查找兩個日期之間的天數?
- 4. 如何找到兩個JavaScript對象數組之間的差異?
- 5. 使用LINQ查找兩個數據對象之間的差異
- 6. 查找Ruby中兩個數組之間的唯一區別
- 7. 如何查找兩天之間的小時數?
- 8. 如何查找java或groovy中兩個日期之間的天數?
- 9. 如何在幾個月內計算兩個ActionScript Date對象之間的差異?
- 10. Shopify(liquid):查找兩個日期之間的天數
- 11. 查找excel中兩個日期/時間之間的天數和時間
- 12. 春天JDBC查詢之間date從HSQLDB
- 13. 如何在明文中查找兩個標籤之間的對象
- 14. java - 如何找到兩個列表之間的匹配對象?
- 15. 查找兩個C#對象之間的屬性差異
- 16. 如何查找PHP中兩個日期之間的DateIntervals數
- 17. 兩個時間戳之間的天數
- 18. 兩個時間戳之間的天數
- 19. Ruby數組對象查找
- 20. 從Java Date對象查找是否是月份的第一天
- 21. 如何使用Rails查找兩個對象之間創建的最近關聯?
- 22. 計算兩個Date或Calendar對象之間的年數,考慮閏年
- 23. 加入天(縣)Date對象
- 24. Hibernate:如何獲得兩個Date列之間的時間差?
- 25. 如何找出兩個時間戳之間的天數和分鐘
- 26. 天內兩個LocalDateTIme對象之間的差異
- 27. 查找Infopath中兩個日期字段之間的天數差異
- 28. 如何計算PHP中兩個日期之間的天數?
- 29. 如何獲得nodatime中兩個日期之間的天數
- 30. 如何計算PHP中兩個日期之間的天數?
覺得你的意思是減去結束日期的開始日期:) – Nader 2011-11-24 00:30:14
種虎頭蛇尾吧? – Brig 2011-12-17 04:45:59
注意:如果您在irb中使用Wirble(將輸出着色),則有理數將有1連接到結尾。哎呀!你可能想用to_i將結果轉換爲整數 – jwal 2012-01-24 18:07:15