class OpenEHR::RM::DataTypes::Quantity::DateTime::DvDuration

Attributes

value[R]

Public Class Methods

new(args = { }) click to toggle source
# File lib/open_ehr/rm/data_types/quantity/date_time.rb, line 214
def initialize(args = { })
  super
end

Public Instance Methods

magnitude() click to toggle source
# File lib/open_ehr/rm/data_types/quantity/date_time.rb, line 232
def magnitude
  months = 0
  months += @months if @months
  months += @years * MONTH_IN_YEAR if @years
  days = 0
  days += months * NOMINAL_DAYS_IN_MONTH if months
  days += @weeks * DAYS_IN_WEEK if @weeks
  days += @days if @days
  hours = 0
  hours += days * HOURS_IN_DAY if days
  hours += @hours if @hours
  minutes = 0
  minutes += hours * MINUTES_IN_HOUR if hours
  minutes += @minutes if @minutes
  seconds = 0
  seconds += @seconds if @seconds
  seconds += @fractional_second if @fractional_second
  seconds += minutes * SECONDS_IN_MINUTE if minutes
  return seconds
end
value=(value) click to toggle source
# File lib/open_ehr/rm/data_types/quantity/date_time.rb, line 218
def value=(value)
  raise ArgumentError, 'value must be not nil' if value.nil?
  @value = value
  iso8601_duration = AssumedLibraryTypes::ISO8601Duration.new(value)
  self.years = iso8601_duration.years
  self.months = iso8601_duration.months
  self.weeks = iso8601_duration.weeks
  self.days = iso8601_duration.days
  self.hours = iso8601_duration.hours
  self.minutes = iso8601_duration.minutes
  self.seconds = iso8601_duration.seconds
  self.fractional_second = iso8601_duration.fractional_second
end