時刻
see gml schema
オブジェクトの生成
time : String or [Numeric] 時刻表現 options : Hash :frame => When::TM::Clock :precision => Integer (Enumerated in the When::Coordinates Module)
# File when/tmposition.rb, line 1097 1097: def initialize(time, options={}) 1098: # 参照系の取得 1099: @frame = (options[:frame] || Clock.local_time || When.utc) 1100: @frame = When.Clock(@frame) if (@frame.kind_of?(String)) 1101: options.delete(:frame) 1102: 1103: # 時刻表現の解読 ( Time Zone の解釈 ) 1104: if (time.kind_of?(String)) 1105: case time 1106: when /^([-+])?(\d{2,}?):?(\d{2})?:?(\d{2}(\.\d+)?)?$/ 1107: sign, hh, mm, ss = $~[1..4] 1108: time = @frame._validate([0,0,0,0], 1109: [0, 1110: -(sign.to_s + "0" + hh.to_s).to_i, 1111: -(sign.to_s + "0" + mm.to_s).to_i, 1112: Pair._en_number(-(sign.to_s + "0" + ss.to_s).to_f)]) 1113: time[0] = Pair.new(0, time[0].to_i) if (time[0] != 0) 1114: when /^Z$/ 1115: time = [0,0,0,0] 1116: else 1117: raise ArgumentError, "Invalid Time Format" 1118: end 1119: end 1120: @clk_time = time 1121: 1122: # 分解能 1123: @precision = @frame._precision(time, options.delete(:precision)) 1124: 1125: super(options) 1126: end
繰り上がり
returns : Numeric 日付の境界が午前0時でない場合、clk_time の最上位桁に 0 以外が入ることがある
# File when/tmposition.rb, line 967 967: def carry 968: return @clk_time[0] 969: end
要素の多言語対応文字列化
index : Integer or String of When::Coordinates::PRECISION 多言語対応文字列化する要素の指定 format : When::BasicTypes::M17n 多言語対応文字列化の書式 returns : When::BasicTypes::M17n
# File when/tmposition.rb, line 992 992: def name(index, format=nil) 993: digit = _digit(index) {|digit| digit > DAY} 994: coordinate = @clk_time[digit] 995: return m17n(format % coordinate) if format 996: 997: indices = @frame.indices[digit-1] 998: if indices 999: trunk = indices.trunk 1000: branch = indices.branch 1001: end 1002: format = branch ? "%02d:" : "%02d" 1003: return m17n(format % coordinate) unless trunk 1004: trunk = trunk[coordinate * 1] 1005: return m17n(trunk) unless branch 1006: return trunk.prefix(branch[coordinate * 0]) 1007: end
多言語対応文字列化
precision : Integer (Enumerated in the When::Coordinates Module) どの桁まで多言語対応文字列化するか、分解能で指定する(デフォルト : @precision) returns : When::BasicTypes::M17n When Standard Representation により多言語対応文字列化する
# File when/tmposition.rb, line 1018 1018: def to_m17n(precision=@precision) 1019: time = m17n('T' + _time_to_s(precision)) 1020: time += @frame.zone if (@frame && !@frame.equal?(Clock.local_time)) 1021: return time 1022: end
文字列化
precision : Integer (Enumerated in the When::Coordinates Module) どの桁まで文字列化するか、分解能で指定する(デフォルト : @precision) returns : String When Standard Representation により文字列化する
# File when/tmposition.rb, line 1033 1033: def to_s(precision=@precision) 1034: time = 'T' + _time_to_s(precision) 1035: time += @frame.zone if (@frame && !@frame.equal?(Clock.local_time)) 1036: return time 1037: end
内部時間
returns : Numeric T00:00:00Z からの Universal Coordinated Time の経過時間 / 128秒 時法によっては、異なる意味を持つことがある
# File when/tmposition.rb, line 956 956: def universal_time 957: raise NameError, "Temporal Reference System is not defined" unless @frame 958: @universal_time ||= @frame.to_universal_time(@clk_time) 959: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.