Module: When::Coordinates::Temporal::IndexConversion

Defined in:
lib/when_exe/coordinates.rb

Instance Method Summary collapse

Instance Method Details

#_from_index(date) ⇒ When::Coordinates::Pair

indexのPair化

Parameters:

  • date (Array<Numeric>)

    最下位が index になっている日時要素

Returns:



2000
2001
2002
2003
2004
2005
2006
2007
2008
# File 'lib/when_exe/coordinates.rb', line 2000

def _from_index(date)
  return nil unless @pair[date.size-1]
  ids = _ids(date[0..-2])
  m   = ids[date[-1]] if (ids)
  return Pair._force_pair(m) if (ids && m)
  return Pair.new(+date[-1]+@base[date.length-1], 0)
rescue ArgumentError
  nil
end

#_to_index(date) ⇒ When::Coordinates::Pair

Pairのindex化

Parameters:

  • date (Array<Numeric>)

    最下位が When::Coordinates::Pair になっている日時要素

Returns:



2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
# File 'lib/when_exe/coordinates.rb', line 2017

def _to_index(date)
  return nil unless @pair[date.size-1]
  ids = _ids(date[0..-2])
  i   = ids.index(date[-1]) if ids
  return i if i
  return nil unless ids && date[-1].kind_of?(Pair)
  digit = Pair.new(date[-1].trunk, date[-1].branch)
  while digit.branch > 0
    digit.branch -= 1
    i = ids.index(digit)
    return i + date[-1].branch - digit.branch if i
  end
  return nil
rescue ArgumentError
  nil
end