代码之家  ›  专栏  ›  技术社区  ›  Jirapong

RubyDateTime中是否有附加天数?

  •  40
  • Jirapong  · 技术社区  · 16 年前

    在C中,datetime类中有一个adddays方法([天数])。

    在Ruby中有类似的方法吗?

    5 回复  |  直到 9 年前
        1
  •  71
  •   Rimian    10 年前

    这个 Date 类提供 + 就这样做的接线员。

    >> d = Date.today
    => #<Date: 4910149/2,0,2299161>
    >> d.to_s
    => "2009-08-31"
    >> (d+3).to_s
    => "2009-09-03"
    >> 
    
        2
  •  24
  •   Jiemurat    11 年前

    在铁路中有非常有用的方法 Fixnum 课程(这里 n 固定器 . 例如: 1,2,3.... ):

    Date.today + n.seconds # you can use 1.second
    Date.today + n.minutes # you can use 1.minute
    Date.today + n.hours # you can use 1.hour
    Date.today + n.days # you can use 1.day
    Date.today + n.weeks # you can use 1.week
    Date.today + n.months # you can use 1.month
    Date.today + n.years # you can use 1.year
    

    这些方便 Time 课也一样。

    PS:要求 主动支持核心扩展 在Ruby中使用这些

    require 'active_support/core_ext'
    
        3
  •  13
  •   jonsca    13 年前

    Date class :

    +(n)

    返回比当前日期晚n天的新日期对象。

    n可能是负值,在这种情况下,新日期比当前日期早;但是,-()可能更直观。

    如果n不是数字,则会引发类型错误。尤其是,两个日期不能互相添加。

        4
  •  8
  •   NilColor    9 年前

    我想 next_day 可读性比 + 版本。

    require 'date'
    
    DateTime.new(2016,5,17)
    # => #<DateTime: 2016-05-17T00:00:00+00:00 ((2457526j,0s,0n),+0s,2299161j)>
    DateTime.new(2016,5,17).next_day(10)
    # => #<DateTime: 2016-05-27T00:00:00+00:00 ((2457536j,0s,0n),+0s,2299161j)>
    Date.new(2016,5,17)
    # => #<Date: 2016-05-17 ((2457526j,0s,0n),+0s,2299161j)>
    Date.new(2016,5,17).next_day(10)
    # => #<Date: 2016-05-27 ((2457536j,0s,0n),+0s,2299161j)>
    

    http://ruby-doc.org/stdlib-2.3.1/libdoc/date/rdoc/Date.html#method-i-next_day .

        5
  •  1
  •   Vlad Hilko    9 年前
    Date.new(2001,9,01).next_day(30) # 30 - numbers of day 
    # => #<Date: 2001-10-01 ...
    
    推荐文章