# File lib/xsd/datatypes.rb, line 641 641: def _set(data) 642: if data.nil? 643: @data = @secfrac = nil 644: return 645: end 646: @data, @secfrac = data 647: end
# File lib/xsd/datatypes.rb, line 649 649: def _to_s 650: year = (@data.year > 0) ? @data.year : @data.year - 1 651: s = format('%.4d-%02d-%02dT%02d:%02d:%02d', 652: year, @data.mon, @data.mday, @data.hour, @data.min, @data.sec) 653: if @data.sec_fraction.nonzero? 654: if @secfrac 655: s << ".#{ @secfrac }" 656: else 657: s << sprintf("%.16f", 658: (@data.sec_fraction * DayInSec).to_f).sub(/^0/, '').sub(/0*$/, '') 659: end 660: end 661: add_tz(s) 662: end
# File lib/xsd/datatypes.rb, line 612 612: def screen_data_str(t) 613: /^([+\-]?\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d(?:\.(\d*))?)(Z|(?:[+\-]\d\d:\d\d)?)?$/ =~ t.to_s.strip 614: unless Regexp.last_match 615: raise ValueSpaceError.new("#{ type }: cannot accept '#{ t }'.") 616: end 617: if $1 == '0000' 618: raise ValueSpaceError.new("#{ type }: cannot accept '#{ t }'.") 619: end 620: year = $1.to_i 621: if year < 0 622: year += 1 623: end 624: mon = $2.to_i 625: mday = $3.to_i 626: hour = $4.to_i 627: min = $5.to_i 628: sec = $6.to_i 629: secfrac = $7 630: zonestr = $8 631: data = DateTime.civil(year, mon, mday, hour, min, sec, tz2of(zonestr)) 632: if secfrac 633: diffday = secfrac.to_i.to_r / (10 ** secfrac.size) / DayInSec 634: data += diffday 635: # FYI: new0 and jd_to_rjd are not necessary to use if you don't have 636: # exceptional reason. 637: end 638: [data, secfrac] 639: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.