如何查找两个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. 如何查找两个日期之间的天数?
- 2. 如何找到两个JavaScript对象数组之间的差异?
- 3. 查找Ruby中两个数组之间的唯一区别
- 4. 如何查找两天之间的小时数?
- 5. 如何查找java或groovy中两个日期之间的天数?
- 6. 查找excel中两个日期/时间之间的天数和时间
- 7. 如何在明文中查找两个标签之间的对象
- 8. 查找两个C#对象之间的属性差异
- 9. java - 如何找到两个列表之间的匹配对象?
- 10. 如何查找PHP中两个日期之间的DateIntervals数
- 11. 两个时间戳之间的天数
- 12. Ruby数组对象查找
- 13. 如何使用Rails查找两个对象之间创建的最近关联?
- 14. 计算两个Date或Calendar对象之间的年数,考虑闰年
- 15. 如何找出两个时间戳之间的天数和分钟
- 16. 天内两个LocalDateTIme对象之间的差异
- 17. 查找Infopath中两个日期字段之间的天数差异
- 18. 如何计算PHP中两个日期之间的天数?
- 19. 如何计算PHP中两个日期之间的天数?
- 20. 如何获取JavaScript中两个文本框之间的天数?
- 21. 如何计算javascript中两个日期之间的天数?
- 22. 如何获得Python中两个月之间的天数
- 23. 如何提供SAS中两个日期之间的天数
- 24. 两个日期之间的总天数
- 25. 在Ruby中查找与今天日期相匹配的对象
- 26. 如何过滤两个日期之间的对象数组?
- 27. 两天之间的天差
- 28. 计算两天之间的天数
- 29. 如何有效地查询两个表之间的查找表?
- 30. 如何将两个日期时间之间的天数分成几天?
觉得你的意思是减去结束日期的开始日期:) – 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