Class: Daru::Offsets::YearBegin

Inherits:
DateOffset show all
Defined in:
lib/daru/date_time/offsets.rb

Overview

Create a year begin offset

Examples:

Create a YearBegin offset

offset = Daru::Offsets::YearBegin.new(3)
offset + DateTime.new(2012,5,5)
#=> #<DateTime: 2015-01-01T00:00:00+00:00 ((2457024j,0s,0n),+0s,2299161j)>

Instance Method Summary collapse

Constructor Details

#initialize(n = 1) ⇒ YearBegin

Returns a new instance of YearBegin.



337
338
339
# File 'lib/daru/date_time/offsets.rb', line 337

def initialize n=1
  @n = n
end

Instance Method Details

#+(date_time) ⇒ Object



345
346
347
348
# File 'lib/daru/date_time/offsets.rb', line 345

def + date_time
  DateTime.new(date_time.year + @n, 1, 1,
    date_time.hour,date_time.min, date_time.sec)
end

#-(date_time) ⇒ Object



350
351
352
353
354
355
356
357
# File 'lib/daru/date_time/offsets.rb', line 350

def - date_time
  if on_offset?(date_time)
    DateTime.new(date_time.year - @n, 1, 1,
      date_time.hour,date_time.min, date_time.sec)
  else
    DateTime.new(date_time.year - (@n-1), 1, 1)
  end
end

#freq_stringObject



341
342
343
# File 'lib/daru/date_time/offsets.rb', line 341

def freq_string
  (@n == 1 ? '' : @n.to_s) + 'YB'
end

#on_offset?(date_time) ⇒ Boolean

Returns:

  • (Boolean)


359
360
361
# File 'lib/daru/date_time/offsets.rb', line 359

def on_offset? date_time
  date_time.month == 1 and date_time.day == 1
end