Included Modules

Files

Class Index [+]

Quicksearch

XSD::XSDDateTime

Constants

Type

Public Class Methods

new(value = nil) click to toggle source
     # File lib/xsd/datatypes.rb, line 606
606:   def initialize(value = nil)
607:     init(Type, value)
608:   end

Private Instance Methods

_set(data) click to toggle source
     # 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
_to_s() click to toggle source
     # 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
screen_data_str(t) click to toggle source
     # 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.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.