Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1068

Show
Ignore:
Timestamp:
11/28/03 14:18:36 (5 years ago)
Author:
nahi
Message:

* dateTime precision bug fix (at least, I hope.) bug of soap4r.

XSDDateTimeImpl.to_time passed a Float to Time.localtime as usec and
NUM2LONG(rb_num2long for Float) cases rounding error.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/xsd/datatypes.rb

    r1062 r1068  
    478478      if @data.offset * SecInDay == Time.now.utc_offset 
    479479        d = @data 
    480         usec = (d.sec_fraction * SecInDay * 1000000).to_f 
     480        usec = ((d.sec_fraction * SecInDay * 1000000) + 0.5).to_i 
    481481        Time.local(d.year, d.month, d.mday, d.hour, d.min, d.sec, usec) 
    482482      else 
    483483        d = @data.newof 
    484         usec = (d.sec_fraction * SecInDay * 1000000).to_f 
     484        usec = ((d.sec_fraction * SecInDay * 1000000) + 0.5).to_i 
    485485        Time.gm(d.year, d.month, d.mday, d.hour, d.min, d.sec, usec) 
    486486      end 
     
    518518 
    519519  def _set(t) 
    520     set_datetime_init 
     520    set_datetime_init(t) 
    521521    if (t.is_a?(Date)) 
    522522      @data = t 
     
    550550private 
    551551 
    552   def set_datetime_init 
     552  def set_datetime_init(t) 
    553553    @secfrac = nil 
    554554  end 
     
    620620private 
    621621 
    622   def set_datetime_init 
     622  def set_datetime_init(t) 
    623623    @secfrac = nil 
    624624  end 
     
    670670private 
    671671 
    672   def set_datetime_init 
     672  def set_datetime_init(t) 
    673673  end 
    674674 
     
    709709private 
    710710 
    711   def set_datetime_init 
     711  def set_datetime_init(t) 
    712712  end 
    713713 
     
    747747private 
    748748 
    749   def set_datetime_init 
     749  def set_datetime_init(t) 
    750750  end 
    751751 
     
    784784private 
    785785 
    786   def set_datetime_init 
     786  def set_datetime_init(t) 
    787787  end 
    788788 
     
    818818private 
    819819 
    820   def set_datetime_init 
     820  def set_datetime_init(t) 
    821821  end 
    822822 
     
    851851private 
    852852 
    853   def set_datetime_init 
     853  def set_datetime_init(t) 
    854854  end 
    855855