Eras

複数の暦を時間的に接続して表現する暦

スーパークラス:

クラス メソッド:

Eras.instance(key)
文字列に対応するインスタンスを生成します。
  key  インスタンスを指定する文字列
Eras.calendar_year([cal=Civil.new,] name, b [, d])
Eras.calendar_year([cal=Civil.new,] name, yb, mb, db)
数え年用 Eras オブジェクトを生成して返します。
  cal            暦法(Calendar )オブジェクトまたは暦法名
  b, yb, mb, db  誕生日(を格納した配列)
  d              死亡日を格納した配列
Eras.years_old(name, b [, d])
Eras.years_old(name, yb, mb, db)
満年齢用 Eras オブジェクトを生成して返します。
  b, yb, mb, db  誕生日(を格納した配列)
  d              死亡日を格納した配列
Eras.new(quality={})
Eras オブジェクトを生成して返します。
  quality  暦法の性質定義ハッシュ

パブリック インスタンス メソッド:

Eras#date_to_sd(*date)
日時を表す配列を地方時通日に変換して返します。
  date 日時を表す配列  年 [,月 [,日 [,時 [,分 [,秒 [,秒の小数]]]]]]
Eras#exist?(*date)
日時表現に対応する日付が存在していれば、その地方時通日を返します。
日時表現に対応する年号が存在していなければ、nil を返します。
  date 日付表現を格納した配列
Eras#sd_to_date(sd [, n=1 [, off=[0,1]]])
地方時通日を日時を表す表現の組に変換して返します。
  sd  地方時通日
  n   n 番目の表現
  off 紀年法の補正情報([紀元[,方向])
Calendar#sd_to_s(sd [, n=1 [, off=[0,1]]])
地方時通日をISO8601拡張文字列に変換して返します。
  sd  地方時通日
  n   n 番目の日時を表す表現の組に変換するかを指定
  off 紀年法の補正情報([紀元[,方向])
Eras#shift_sd(sd, period)
sd から period で指定された期間だけ隔たった地方時通日を返します。
  period ISO8601期間文字列 

プロテクテッド インスタンス メソッド:

Eras#_m_in_y(*date)
指定した年に含まれる月の数を返します。
(運用表現の年初は考慮されません)
  date 日時を表現する配列 
Eras#_d_in_y(*date)
指定した年に含まれる日の数を返します。
(運用表現の年初は考慮されません)
  date 日時を表現する配列 
Eras#_d_in_m(*date)
指定した月に含まれる日の数を返します。
  date 日時を表現する配列 
Eras#_matched_list(key, all)
key に一致するリストを配列で返します。
key が false の場合は、属するすべてのリストが一致するものとします。
  key  検索キー
  all  false のときは、自分の title との一致を確認します(super)。
       true  のときは、自分の list  との一致を確認します。

ブライベート インスタンス メソッド:

Eras#_find_list_by_sdn(sd [, all=false])
sd で指定した日に有効な暦法のリストを配列で返します。
  sd  地方時通日 
  all false なら最初に見つかったリストのみ返します。
      true  なら有効なすべてのリストを返します。
Eras#_qualify
Eras オブジェクトの性質定義を初期設定します。

データ構造:

Eras オブジェクトはハッシュの配列@Listに性質定義情報を保持し
ています。以下そのハッシュの要素の説明です。

'Key' : 年号検索のキーとする文字列

String "国名.人名.年号"
  Calendar.get で文字列から self を検索するためのキーを保持します。
  本情報は、生成時に要素 'Nation', 'Name', 'Era' から作られます。
  生成後は要素 'Nation', 'Name', 'Era' は使用されません。

'Calendar' : 年号区間の計算に用いられる暦法オブジェクト

Calendar
  年号区間の計算に用いられる暦法(Calendar )オブジェクトを保持します。

'Sign' : 暦法の年の昇順・降順指定

Integer 1 or -1
  「紀元前」などの表記の場合、オリジナルな暦法とは年の順序が逆になります。
  本要素に -1 を指定すると、オリジナルな暦法と逆順に年を数えることができ
  ます。

'Epoch' : 暦法の年のオフセット

Integer
  年号の 0 年に相当する年の番号を指定します。

'Day0' : 開始日(地方時正午通日)

'Day1' : 終了日(地方時正午通日)

Integer
  年号の有効期間を地方時正午通日で示します。
  有効期間は開始日から終了日前日です。終了日当日は有効ではありません。

'Start','Birth' : 'Epoch' と 'Day0' の決定に用いるユーザ指示用要素

Array [年,月,日]
  年号の有効期間の開始日を'Calendar'に保持する暦法での年月日で示します。
  'Start'では開始日を含む年が「1年」になるように、'Birth'では、開始日を
  含む年が「0年」になるように、'Epoch'を設定します。いずれも'Day0'には、
  その当日が設定されます。
  生成後は要素 'Start', 'Birth' は削除されます。

'End','Death' : 'Day1' の決定に用いるユーザ指示用要素

Array [年,月,日]
  年号の有効期間の終了日を'Calendar'に保持する暦法での年月日で示します。
  'End'では当日を'Day1'に、'Death'では翌日を'Day1'に設定します。
  生成後は要素 'End', 'Death' は削除されます。

'Form' : 暦法出力書式

(現在、未使用です)