Class: When::TM::Coordinate

Inherits:
TemporalPosition show all
Defined in:
lib/when_exe/tmposition.rb

Overview

時間座標 - 単一の時間間隔によって定義する連続な間隔尺度を基礎とする

see gml schema

Direct Known Subclasses

JulianDate

Constant Summary

Constants inherited from TemporalPosition

TemporalPosition::AMPM, TemporalPosition::DateTimeInstanceMethods, TemporalPosition::Format, TemporalPosition::HashProperty

Constants included from Coordinates

Coordinates::Bahai, Coordinates::Chinese, Coordinates::Common, Coordinates::DefaultDateIndices, Coordinates::DefaultDayIndex, Coordinates::DefaultTimeIndices, Coordinates::Indian, Coordinates::Iranian, Coordinates::Javanese, Coordinates::MATCH, Coordinates::Mayan, Coordinates::PERIOD, Coordinates::PERIOD_NAME, Coordinates::PRECISION, Coordinates::PRECISION_NAME, Coordinates::Russian, Coordinates::Tibetan, Coordinates::VALUE, Coordinates::Yi

Constants included from When

AUTHOR, CENTURY, COPYRIGHT, DAY, DECADE, EUCJP, HOUR, MINUTE, MONTH, MinusInfinity, Month, P1D, P1M, P1W, P1Y, PT1H, PT1M, PT1S, PlusInfinity, RootDir, SECOND, STRING, SYSTEM, SourceURI, When::TimeValue, UTF8, VERSION, W31J, WEEK, Week, YEAR, YEARS

Constants included from Parts::Resource

Parts::Resource::ConstList, Parts::Resource::ConstTypes, Parts::Resource::IRIDecode, Parts::Resource::IRIDecodeTable, Parts::Resource::IRIEncode, Parts::Resource::IRIEncodeTable, Parts::Resource::IRIHeader, Parts::Resource::LabelProperty

Constants included from IndeterminateValue

IndeterminateValue::After, IndeterminateValue::Before, IndeterminateValue::I, IndeterminateValue::Max, IndeterminateValue::Min, IndeterminateValue::Now, IndeterminateValue::S, IndeterminateValue::Unknown

Instance Attribute Summary collapse

Attributes inherited from TemporalPosition

#events, #frame, #indeterminated_position, #location, #options, #precision, #query, #trans

Attributes included from Parts::Resource

#_pool, #child, #keys, #locale, #namespace

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from TemporalPosition

#+@, #<=>, #==, #[], #^, #_attr, _instance, #_notes, _options, _setup_, _setup_info, _temporal_position, #_to_h, #_to_s, _verify, #calendar_name, #clock_name, #copy, #dynamical_time, #floor, format, #has_next?, #has_time?, #include?, #inspect, #is?, #month_included, #note?, #notes, #period, #prev, #rate_of_clock, #reference_label, #scan, #strftime, #succ, #time_standard, #to_clock_time, #to_date, #to_datetime, #to_f, #to_i, #to_m17n, #to_residue, #to_s, #to_time, #to_uri, #to_uri_escape, #week_included, #year_included

Methods included from Coordinates

to_deg, to_deg_225, to_dms

Methods included from When

Border, Calendar, CalendarEra, CalendarNote, Clock, Duration, Index, Location, M17n, MonthName, Pair, Residue, Resource, TemporalPosition, Wikipedia, _const_missing, _define_common_calendar_types, _setup_, _setup_info, at, client, column, config, const_missing, era, free_conv, m17n, now, server, today, when?

Methods included from TemporalPosition::Conversion

#julian_date, #tm_pos

Methods included from Parts::Resource

#[], #^, _abbreviation_to_iri, _decode, _encode, _extract_prefix, _instance, _instantiate, _parse, _path_with_prefix, _replace_tags, _setup_, _setup_info, _simplify_path, base_uri, #each, #enum_for, #hierarchy, #include?, #included?, #iri, #leaf?, #m17n, #map, #next, #parent, #prev, #registered?, root_dir

Methods included from Parts::Resource::Pool

#[], #[]=, #_pool, #_setup_, #pool_keys

Methods included from Parts::Resource::Synchronize

#synchronize

Constructor Details

#initialize(universal_time, options = {}) ⇒ Coordinate

オブジェクトの生成

Parameters:

  • universal_time (Numeric)

    内部時間による時間座標値

  • options (Hash) (defaults to: {})

    下記の通り

Options Hash (options):



1280
1281
1282
1283
# File 'lib/when_exe/tmposition.rb', line 1280

def initialize(universal_time, options={})
  super(options)
  @universal_time = universal_time
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class When::TM::TemporalPosition

Instance Attribute Details

#universal_timeNumeric Also known as: coordinateValue

内部時間による時間座標値

Returns:



1228
1229
1230
# File 'lib/when_exe/tmposition.rb', line 1228

def universal_time
  @universal_time
end

Class Method Details

.dynamical_time(dynamical_time, options = {}) ⇒ When::TM::Coordinate

外部時間によるオブジェクトの生成

Parameters:

  • dynamical_time (Numeric)

    外部時間による時間座標値

  • options (Hash) (defaults to: {})

    下記の通り

Options Hash (options):

Returns:



1166
1167
1168
# File 'lib/when_exe/tmposition.rb', line 1166

def dynamical_time(dynamical_time, options={})
  universal_time(When.Resource(options[:time_standard] || 'UniversalTime', '_t:').from_dynamical_time(dynamical_time), options)
end

.new(time, options = {}) ⇒ When::TM::Coordinate

他種の時間位置によるオブジェクトの生成

Parameters:

Options Hash (options):

Returns:

Raises:

  • (TypeError)


1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
# File 'lib/when_exe/tmposition.rb', line 1180

def new(time, options={})
  options         = options.dup
  options[:frame] = Clock.get_clock_option(options)
  case time
  when Numeric
    options[:frame] ||= When::UTC unless time.kind_of?(Integer)
    universal_time    = (2*time - (2*JulianDate::JD19700101-1)) * Duration::DAY.to_i / 2.0
  when ClockTime
    options[:frame] ||= time.clock
    universal_time    = time.clk_time[0] + time.universal_time
  when ::Time
    options[:frame] ||= When.Clock(time.gmtoff)
    universal_time    = options[:frame].time_standard.from_time_object(time)
  when TimeValue
    options[:frame] ||= time.clock
    universal_time    = time.universal_time
  else
    if ::Object.const_defined?(:Date) && ::Date.method_defined?(:+) && time.respond_to?(:ajd)
      case time
      when ::DateTime
        options[:frame] ||= When.Clock((time.offset * 86400).to_i)
        universal_time    = (2*time.ajd - (2*JulianDate::JD19700101-1)) * Duration::DAY.to_i / 2.0
      when ::Date
        universal_time    = JulianDate._d_to_t(time.jd)
        if options[:frame] && options[:frame].rate_of_clock != 1.0
          universal_time  = options[:frame].time_standard.from_dynamical_time(
                                         When::TimeStandard.to_dynamical_time(universal_time))
        end
      end
    end
  end
  raise TypeError, "Can't create #{self} from #{time.class}" unless universal_time
  universal_time(universal_time, options)
end

.universal_timeObject

内部時間によるオブジェクトの生成



1155
# File 'lib/when_exe/tmposition.rb', line 1155

alias :universal_time :new

Instance Method Details

#+(other) ⇒ When::TM::TemporalPosition

加算



1256
1257
1258
1259
# File 'lib/when_exe/tmposition.rb', line 1256

def +(other)
  other = other.to_interval_length if other.kind_of?(PeriodDuration)
  super(other)
end

#-(other) ⇒ When::TM::TemporalPosition, When::TM::IntervalLength

減算

Parameters:

Returns:



1268
1269
1270
1271
# File 'lib/when_exe/tmposition.rb', line 1268

def -(other)
  other = other.to_interval_length if other.kind_of?(PeriodDuration)
  super(other)
end

#local_timeNumeric

内部時間(ローカル)

Returns:

  • (Numeric)

    1970-01-01T00:00:00(ローカル) からの Universal Coordinated Time の経過時間 / 128秒



1238
1239
1240
# File 'lib/when_exe/tmposition.rb', line 1238

def local_time
  @universal_time
end