class OpenEHR::AssumedLibraryTypes::ISO8601DateTime

Public Class Methods

new(string) click to toggle source
# File lib/openehr/assumed_library_types.rb, line 496
def initialize(string)
  unless /(\d{4})(?:-(\d{2})(?:-(\d{2}))?)?T(\d{2})(?::(\d{2})(?::(\d{2})(?:(\.|,)(\d+))?)?(Z|([+-]\d{2}):?(\d{2}))?)?/ =~ string
    raise ArgumentError, 'format invalid'
  else
    self.year = $1.to_i
  end
  if $2.nil?
    self.month = nil
  else
    self.month = $2.to_i
  end
  if $3.nil?
    self.day = nil
  else
    self.day = $3.to_i
  end
  if $5.nil?
    self.minute = nil
  else
    self.minute = $5.to_i
  end
  if $6.nil?
    self.second = nil
  else
    self.second = $6.to_i
  end
  if $4.nil?
    self.hour = nil
  else
    self.hour = $4.to_i
  end
  if $8.nil? or $8.empty?
    self.fractional_second = nil
  else
    self.fractional_second = ("0."+$8).to_f
  end
  if $9.nil?
    self.timezone = nil
  else
    self.timezone = $9
  end
end

Public Instance Methods

<=>(other) click to toggle source
# File lib/openehr/assumed_library_types.rb, line 539
def <=>(other)
  self.magnitude <=> other.magnitude
end

Protected Instance Methods

magnitude() click to toggle source
# File lib/openehr/assumed_library_types.rb, line 544
def magnitude
  return self.to_days*HOURS_IN_DAY*MINUTES_IN_HOUR*SECONDS_IN_MINUTE +
    self.to_second
end