Ignore:
Timestamp:
Oct 18, 2009, 8:14:21 PM (15 years ago)
Author:
KOBAYASHI, Shinji
Message:

common/generic near completed

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ruby/branches/0.5/lib/open_ehr/rm/data_types/quantity/date_time.rb

    r311 r322  
    2929              @value = value
    3030            end
     31
     32            undef magnitude=
    3133          end
    3234
     
    4345              @day = iso8601_date.day
    4446            end
    45 
    46             undef magnitude=
    4747
    4848            def magnitude
     
    8989         
    9090          class DvTime < DvTemporal
    91             include OpenEHR::AssumedLibraryTypes::ISO8601TimeModule
    92             def initialize(value, magnitude_status=nil, accuracy=nil,
    93                            normal_range=nil, normal_status=nil,
    94                            other_reference_range=nil)
    95               super(value, magnitude_status, accuracy, normal_range,
    96                     normal_status, other_reference_range)
    97             end
     91            include ISO8601TimeModule
    9892
    9993            def value=(value)
    10094              super(value)
    101               iso8601_time = AssumedLibraryTypes::ISO8601Time.new(value)
     95              iso8601_time = ISO8601Time.new(value)
    10296              @hour = iso8601_time.hour
    10397              @minute = iso8601_time.minute
     
    124118          class DvDateTime < DvTemporal
    125119            include OpenEHR::AssumedLibraryTypes::ISO8601DateTimeModule
    126             attr_reader :value
    127 
    128             def initialize(value, magnitude_status=nil, accuracy=nil,
    129                            normal_range=nil, normal_status=nil,
    130                            other_reference_range=nil)
    131               super(value, magnitude_status, accuracy, normal_range,
    132                     normal_status, other_reference_range)
    133             end
    134120
    135121            def value=(value)             
     
    147133
    148134            def magnitude
    149               seconds = ::DateTime.new(@year,@month,@day,@hour,@minute,@second) -
    150                 ::DateTime.new(0000,1,1,0,0,0)
     135              seconds = (((@year * 365.24 +
     136                           @month * 30.42 +
     137                           @day) * 24 + @hour) * 60 +
     138                         @minute) * 60 + @second
    151139              if @fractional_second.nil?
    152140                return seconds
     
    155143              end
    156144            end
    157 
    158             undef magnitude=
    159145
    160146            def diff(other)
     
    175161              minute = ((time_diff - hour*60*60)/60).to_i
    176162              second = (time_diff - hour * 60 *60 - minute * 60).to_i
    177               fractional_second = ((time_diff - time_diff.to_i)*1000000.0).to_i/1000000.0
    178 
     163              fractional_second =
     164                ((time_diff - time_diff.to_i)*1000000.0).to_i/1000000.0
    179165              return DvDuration.new(date_duration.value + 'T' +
    180166                        hour.to_s + 'H' +
    181167                        minute.to_s + 'M' +
    182168                        second.to_s + fractional_second.to_s[1..-1] + 'S')
    183                                    
    184169            end
    185170
Note: See TracChangeset for help on using the changeset viewer.