Class: TimeDuration::Duration
- Inherits:
-
Object
- Object
- TimeDuration::Duration
- Includes:
- Comparable
- Defined in:
- lib/time_duration/duration.rb
Instance Attribute Summary collapse
-
#second ⇒ Object
readonly
Returns the value of attribute second.
Class Method Summary collapse
-
.parse(time_as_string, format: '%H:%M') ⇒ Object
TODO: format指定できるようにする.
Instance Method Summary collapse
- #+(time_duration) ⇒ Object
- #-(time_duration) ⇒ Object
- #<=>(time_duration) ⇒ Object
- #hour ⇒ Object
-
#initialize(hour: 0, minute: 0, second: 0) ⇒ Duration
constructor
A new instance of Duration.
-
#inspect ⇒ Object
override.
- #minute ⇒ Object
-
#to_s ⇒ Object
TODO: format指定できるようにする.
Constructor Details
#initialize(hour: 0, minute: 0, second: 0) ⇒ Duration
Returns a new instance of Duration.
13 14 15 16 17 18 |
# File 'lib/time_duration/duration.rb', line 13 def initialize(hour: 0, minute: 0, second: 0) hour = hour.to_i minute = minute.to_i second = second.to_i @second = hour * 3600 + minute * 60 + second end |
Instance Attribute Details
#second ⇒ Object (readonly)
Returns the value of attribute second.
5 6 7 |
# File 'lib/time_duration/duration.rb', line 5 def second @second end |
Class Method Details
.parse(time_as_string, format: '%H:%M') ⇒ Object
TODO: format指定できるようにする
8 9 10 11 |
# File 'lib/time_duration/duration.rb', line 8 def self.parse(time_as_string, format: '%H:%M') hour, minute = time_as_string.split(':').map(&:to_i) new(hour: hour, minute: minute) end |
Instance Method Details
#+(time_duration) ⇒ Object
33 34 35 |
# File 'lib/time_duration/duration.rb', line 33 def +(time_duration) self.class.new(second: second + time_duration.second) end |
#-(time_duration) ⇒ Object
37 38 39 |
# File 'lib/time_duration/duration.rb', line 37 def -(time_duration) self.class.new(second: second - time_duration.second) end |
#<=>(time_duration) ⇒ Object
41 42 43 |
# File 'lib/time_duration/duration.rb', line 41 def <=>(time_duration) self.second <=> time_duration.second end |
#hour ⇒ Object
20 21 22 |
# File 'lib/time_duration/duration.rb', line 20 def hour minute / 60 + second.abs / 3600 end |
#inspect ⇒ Object
override
46 47 48 |
# File 'lib/time_duration/duration.rb', line 46 def inspect to_s end |
#minute ⇒ Object
24 25 26 |
# File 'lib/time_duration/duration.rb', line 24 def minute (second.abs / 60) % 60 end |
#to_s ⇒ Object
TODO: format指定できるようにする
29 30 31 |
# File 'lib/time_duration/duration.rb', line 29 def to_s "#{'-' if second < 0}%d:%02d" % [hour, minute] end |