Class: Owrb::Time

Inherits:
Object
  • Object
show all
Defined in:
lib/owrb.rb

Constant Summary collapse

DAY_SECONDS =
24 * 60 * 60
HOUR_SECONDS =
60 * 60
MINUTE_SECONDS =
60

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value = ::Time.now) ⇒ Time

Returns a new instance of Time.



279
280
281
# File 'lib/owrb.rb', line 279

def initialize( value = ::Time.now )
  @value = value
end

Instance Attribute Details

#valueObject (readonly)

Returns the value of attribute value.



277
278
279
# File 'lib/owrb.rb', line 277

def value
  @value
end

Class Method Details

.format(type, value = ::Time.now) ⇒ Object



266
267
268
269
270
271
272
273
274
275
# File 'lib/owrb.rb', line 266

def self.format( type, value = ::Time.now )
  case type
  when :all
    value.strftime( "%Y/%m/%d %H:%M:%S.%6N" )
  when :ymdhms
    value.strftime( "%Y/%m/%d %H:%M:%S" )
  else
    ""
  end
end

Instance Method Details

#add_days(value) ⇒ Object



287
288
289
# File 'lib/owrb.rb', line 287

def add_days( value )
  @value + value * DAY_SECONDS
end

#add_hours(value) ⇒ Object



291
292
293
# File 'lib/owrb.rb', line 291

def add_hours( value )
  @value + value * HOUR_SECONDS
end

#add_minutes(value) ⇒ Object



295
296
297
# File 'lib/owrb.rb', line 295

def add_minutes( value )
  @value + value * MINUTE_SECONDS
end

#add_seconds(value) ⇒ Object



299
300
301
# File 'lib/owrb.rb', line 299

def add_seconds( value )
  @value + value
end

#diff(value) ⇒ Object



315
316
317
318
319
320
321
322
323
324
325
326
327
328
# File 'lib/owrb.rb', line 315

def diff( value )
  total_seconds = ( value < @value ) ? @value - value : value - @value
  total_seconds = total_seconds.to_i
  days = diff_days( total_seconds )
  hours = diff_hours( days[ 1 ] )
  minutes = diff_minutes( hours[ 1 ] )
  {
    :total_seconds => total_seconds,
    :days          => days[ 0 ],
    :hours         => hours[ 0 ],
    :minutes       => minutes[ 0 ],
    :seconds       => minutes[ 1 ],
  }
end

#diff_days(seconds) ⇒ Object



303
304
305
# File 'lib/owrb.rb', line 303

def diff_days( seconds )
  [ seconds / DAY_SECONDS, seconds % DAY_SECONDS ]
end

#diff_hours(seconds) ⇒ Object



307
308
309
# File 'lib/owrb.rb', line 307

def diff_hours( seconds )
  [ seconds / HOUR_SECONDS, seconds % HOUR_SECONDS ]
end

#diff_minutes(seconds) ⇒ Object



311
312
313
# File 'lib/owrb.rb', line 311

def diff_minutes( seconds )
  [ seconds / MINUTE_SECONDS, seconds % MINUTE_SECONDS ]
end

#to_sObject



283
284
285
# File 'lib/owrb.rb', line 283

def to_s
  Time::format( :all, @value )
end