Sha256: da0bb429cbcdb12a0d40edcc09e11a58f3eefe7ba8970ff4787875618d42786e

Contents?: true

Size: 1.06 KB

Versions: 12

Compression:

Stored size: 1.06 KB

Contents

# encoding: utf-8
class Date

  def self.year(year=Date.today.year)
    Date.new(year)
  end

  def january(day=nil)
    day.nil?? self.change(month: 1) : self.change(month: 1, day: day)
  end

  def october(day=nil)
    day.nil?? self.change(month: 10) : self.change(month: 10, day: day)
  end

  def december(day=nil)
    day.nil?? self.change(month: 12) : self.change(month: 12, day: day)
  end

  def monday
    self - (self.wday - 1) % 7
  end

  def weekend?
    self.wday == 0 || self.wday == 6
  end

  def display
    "#{Configuration::DAYS[self.wday]} #{self.day} de #{Configuration::MONTHS[self.month-1]}, #{self.year}"
  end

  def short_display
    self.strftime('%-d/%-m/%Y')
  end

  def add_working_days(days=1)
    new_date = self + days
    while (new_date.wday % 7 == 0) or (new_date.wday % 7 == 6) do
      new_date += 1
    end
    new_date
  end

  def next_working_date
    add_working_days(1)
  end

  def prev_working_date
    add_working_days(-1)
  end

  def first_monday_before
    return self if self.monday?
    (self - 1).first_monday_before
  end

end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
sinatra-hexacta-1.7.20 lib/sinatra/extensions/date.rb
sinatra-hexacta-1.7.19 lib/sinatra/extensions/date.rb
sinatra-hexacta-1.7.18 lib/sinatra/extensions/date.rb
sinatra-hexacta-1.7.17 lib/sinatra/extensions/date.rb
sinatra-hexacta-1.7.16 lib/sinatra/extensions/date.rb
sinatra-hexacta-1.7.15 lib/sinatra/extensions/date.rb
sinatra-hexacta-1.7.14 lib/sinatra/extensions/date.rb
sinatra-hexacta-1.7.13 lib/sinatra/extensions/date.rb
sinatra-hexacta-1.7.12 lib/sinatra/extensions/date.rb
sinatra-hexacta-1.7.11 lib/sinatra/extensions/date.rb
sinatra-hexacta-1.7.10 lib/sinatra/extensions/date.rb
sinatra-hexacta-1.7.9 lib/sinatra/extensions/date.rb