Class Index [+]

Quicksearch

When::TM::DateAndTime

時刻を伴った日付

see gml schema

Attributes

clk_time[R]

時刻要素

  type : When::TM::ClockTime

Public Class Methods

new(date, time, options={}) click to toggle source

オブジェクトの生成

  date : [Numeric]
    日付表現

  time : [Numeric]
    時刻表現

  options        : Hash
    :frame     => When::TM::Calendar
    :clock     => When::TM::Clock
    :era_name  => When::TM::CalendarEra, When::BasicTypes::M17n or [When::BasicTypes::M17n, Integer]
       Integer は 当該年号の 0 年に相当する通年
    :precision => Integer (Enumerated in the When::Coordinates Module)
    the others => see When::TM::TemporalPosition._instance
      # File when/tmposition.rb, line 1738
1738:     def initialize(date, time, options={})
1739:       options[:time] = time
1740:       super(date, options)
1741:     end

Public Instance Methods

&(other) click to toggle source

ユリウス日または通年が指定の剰余となる日

  other   : When::Coordinates::Residue

  returns : When::TM::DateAndTime
      # File when/tmposition.rb, line 1599
1599:     def &(other)
1600:       raise TypeError,"The right operand should be When::Coordinates::Residue" unless Residue === other
1601:       case other.unit
1602:       when 'DAY'
1603:         # 指定の剰余となる日
1604:         return self.dup._copy({:events=>nil, :query=>@query, :validate=>:done,
1605:                                :date=>@frame.to_cal_date(other & to_i),  :time=>@clk_time.clk_time.dup})
1606: 
1607:       when 'YEAR'
1608:         # 指定の剰余となる年
1609:         date = @cal_date.dup
1610:         date[0] = other & date[0]
1611:         return self.dup._copy({:events=>nil, :query=>@query, :date=>date, :time=>@clk_time.clk_time.dup})
1612: 
1613:       else
1614:         raise ArgumentError,"The right operand should have a unit 'D' or 'Y'"
1615:       end
1616:     end
ceil(digit=DAY, precision=digit) click to toggle source

下位桁の切り上げ

  digit     : Integer
    これより下の桁を切り上げる(省略すると When::Coordinates::DAY)

  precision : Integer (Enumerated in the When::Coordinates Module)
    切り上げ結果の分解能(省略すると切り上げずに残した最下位の桁)

  returns   : When::TM::DateAndTime
      # File when/tmposition.rb, line 1655
1655:     def ceil(digit=DAY, precision=digit)
1656:       length  = clock.indices.length
1657:       count   = digit - length
1658:       period  = PeriodDuration.new((count<=0) ? 1 : 0.1**count, digit, (-@frame.indices.length)..length)
1659:       result  = floor(digit, precision) + period
1660:       result += clock._tz_difference if (result.universal_time <= self.universal_time)
1661:       return result
1662:     end
clock() click to toggle source

時法の取得 - ダミー

      # File when/tmposition.rb, line 1547
1547:     def clock
1548:       @clk_time.frame
1549:     end
floor(digit=DAY, precision=digit) click to toggle source

下位桁の切り捨て

  digit     : Integer
    これより下の桁を切り捨てる(省略すると When::Coordinates::DAY)

  precision : Integer (Enumerated in the When::Coordinates Module)
    切り捨て結果の分解能(省略すると切り捨てずに残した最下位の桁)

  returns   : When::TM::DateAndTime
      # File when/tmposition.rb, line 1628
1628:     def floor(digit=DAY, precision=digit)
1629:       count = digit - clock.indices.length
1630:       date  = (digit>=DAY) ? @cal_date.dup : @frame._validate(@cal_date[0..(digit-1)])
1631:       time  = clock._validate(@clk_time.clk_time[0..((digit<=DAY) ? 0 : ((count>=0) ? 1 : digit))])
1632: 
1633:       if (count >= 0)
1634:         factor = 10**count
1635:         time[1] = (time[1] * factor).floor.to_f / factor
1636:       end
1637: 
1638:       # オブジェクトの生成
1639:       options = {:date=>date, :validate=>:done, :events=>nil, :query=>nil,
1640:                  :time=>(digit<=DAY) ? time : @clk_time.dup._copy({:time=>time})}
1641:       options[:precision] = precision if precision
1642:       return self.dup._copy(options)
1643:     end
name(index, format=nil) click to toggle source

要素の多言語対応文字列化

  index   : Integer or String of When::Coordinates::PRECISION
    多言語対応文字列化する要素の指定

  format  : When::BasicTypes::M17n
    多言語対応文字列化の書式

  returns : When::BasicTypes::M17n
      # File when/tmposition.rb, line 1588
1588:     def name(index, format=nil)
1589:       digit = _digit(index)
1590:       (digit <= DAY) ? super : @clk_time.name(digit, format)
1591:     end
to_m17n(precision=@precision) click to toggle source

多言語対応文字列化

  precision : Integer (Enumerated in the When::Coordinates Module)
    どの桁まで多言語対応文字列化するか、分解能で指定する(デフォルト : @precision)

  returns   : When::BasicTypes::M17n

  When Standard Representation により多言語対応文字列化する
      # File when/tmposition.rb, line 1673
1673:     def to_m17n(precision=@precision)
1674:       super + @clk_time.to_m17n(precision)
1675:     end
to_s(precision=@precision) click to toggle source

文字列化

  precision : Integer (Enumerated in the When::Coordinates Module)
    どの桁まで文字列化するか、分解能で指定する(デフォルト : @precision)

  returns   : String

  When Standard Representation により文字列化する
      # File when/tmposition.rb, line 1686
1686:     def to_s(precision=@precision)
1687:       super + @clk_time.to_s(precision)
1688:     end
universal_time() click to toggle source

内部時間

  returns : Numeric

  1970-01-01T00:00:00Z からの Universal Coordinated Time の経過時間 / 128秒

  暦法によっては、異なる意味を持つことがある
      # File when/tmposition.rb, line 1559
1559:     def universal_time
1560:       return super if [Now, Max, Min].include?(@indeterminated_position)
1561:       raise NameError, "Temporal Reference System is not defined" unless (@frame && clock)
1562:       @universal_time ||= (to_i + +@clk_time.clk_time[0] - JulianDate::JD19700101) * IntervalLength::DAY +
1563:                                    @clk_time.universal_time
1564:     end
value(index) click to toggle source

要素の参照

  index   : Integer or String of When::Coordinates::PRECISION
    参照する要素の指定

  returns : Numeric
      # File when/tmposition.rb, line 1573
1573:     def value(index)
1574:       digit = _digit(index)
1575:       return (digit <= DAY) ? @cal_date[digit-1] : @clk_time.clk_time[digit]
1576:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.