# File lib/date.rb, line 1303
  def step(limit, step=1) # :yield: date
??
    da = self
    op = %w(- <= >=)[step <=> 0]
    while da.__send__(op, limit)
      yield da
      da += step
    end
    self
  end