Date::Extended

暦法付きの日付と時刻

スーパークラス:

Date クラス 追加 クラス メソッド:

Date.utc([cal=Civil.new,] y [, m [, d [, h [, min [, s [, us]]]]]])
UTCで指定された日時の Date オブジェクトを生成します。
日付が不正の場合は  ArgumentError を発生します。
時以下がない場合は、地方時正午に対応する Date オブジェクトを生成します。
月以下がない場合は、運用上の年初に対応する Date オブジェクトを生成しま
す(これは暦法によっては、1月1日以外になります)。
  cal  Calendar オブジェクトまたはそれを指定する文字列
  y    年
  m    月
  d    日
  h    時
  min  分
  s    秒
  us   秒の小数(under second)
Date.autozone([cal=Civil.new,] y [, m [, d [, h [, min [, s [, us]]]]]])
指定の暦法がもつ internal_timezoneで指定された日時の Date オブジェクト
を生成します。指定の暦法がタイムゾーンに依存しない場合は、ローカルのタイム
ゾーンを用います。
日付が不正の場合は  ArgumentError を発生します。
時以下がない場合は、地方時正午に対応する Date オブジェクトを生成します。
月以下がない場合は、運用上の年初に対応する Date オブジェクトを生成しま
す(これは暦法によっては、1月1日以外になります)。
  cal  Calendar オブジェクトまたはそれを指定する文字列
  y    年
  m    月
  d    日
  h    時
  min  分
  s    秒
  us   秒の小数(under second)
Date.local([cal=Civil.new,] y [, m [, d [, h [, min [, s [, us]]]]]])
ローカルタイムで指定された日時の Date オブジェクトを生成します。
日付が不正の場合は ArgumentError を発生します。
時以下がない場合は、地方時正午に対応する Date オブジェクトを生成します。
月以下がない場合は、運用上の年初に対応する Date オブジェクトを生成しま
す(これは暦法によっては、1月1日以外になります)。
  cal  Calendar オブジェクトまたはそれを指定する文字列
  y    年
  m    月
  d    日
  h    時
  min  分
  s    秒
  us   秒の小数(under second)
Date.when?([cal=Civil.new,] y [, m [, d [, h [, min [, s [, us]]]]]])
ローカルタイムで指定された日時のDate オブジェクトを生成します。
日付が不正の場合は nil を返します。
時以下がない場合は、地方時正午に対応する Date オブジェクトを生成します。
月以下がない場合は、運用上の年初に対応する Date オブジェクトを生成しま
す(これは暦法によっては、1月1日以外になります)。
年以下がない場合は、現在日時に対応する Date オブジェクトを生成します。
  cal  Calendar オブジェクトまたはそれを指定する文字列
  y    年
  m    月
  d    日
  h    時
  min  分
  s    秒
  us   秒の小数(under second)

Date クラス 追加 パブリック インスタンス メソッド:

Date#to_extended
Date オブジェクトをDate::Extended オブジェクトに変換して返します。
Date#strftime([fmt='%FT%T%f%Z'])
指定した書式に従って、日時を文字列に変換して返します。
%[メソッド名] や %[暦注名] という書式が使えます。
  fmt  書式
Date#zone
タイムゾーンオフセット文字列を返します。
Date#rjd
ユリウス通日(-4712-01-01T12:00:00Zからの経過時間(単位 日))を返します。
下位互換性保持のため、jd を sdn の意味に使うので、date2.rb にあわせてrjd(Real/Rational Julian Day)と命名しています。詳しくはDate#sdn をご
覧ください。
Date#jdn
rjd の小数点以下を四捨五入した整数( Julian Day Number または Julian Day
Noon のつもり)を返します。
Date#sd
地方時通日(地方時-4712-01-01T12:00:00からの経過時間(単位 日))を返します。
Date#sdn
Date#jd
地方時正午通日(*)を返します。
* sd の小数点以下を丸めた整数
1日の始まりの時刻が暦法によって異なるため、丸めは必ずしも四捨五入で
はありません。本メソッドは必ず正午に対応する sdn (Serial Day Number
または Serial Day Noon のつもり - 将来はユリウス通日との関係がなくな
る可能性があるので「地方時の」という含みを持つ、Local Day Number と
はしない)を返します。
最初のDateクラスは時刻概念を持たなかったので、日付に対応するユリウス
通日(整数)をメソッドjdで返しました。これは非常に妥当性がある振る舞い
であり、当時それ以外の選択肢があるはずもなかったのです。今回下位互換
性の保持のため、「絶対」時系-原則として文字列 jd を含む-と地方」時系
-原則として文字列 sd を含む-という命名の例外とします。
Date#jdf
rjd - jdn を返します。正であるとは限りません。
Date#sdf
sd - sdn を返します。正であるとは限りません。
Date#day_fraction
sdf + 1/2 を返します。
Date#cal
self が使用する Calendar オブジェクトを返します。
Date#timezone
self が使用する Timezone オブジェクトを返します。
Date#new_calendar(cal)
Date#%(cal)
self を複製して、使用する Calendar オブジェクトを設定し直します。
  cal  Calendar オブジェクトまたはそれを指定する文字列
Date#new_zone(zone)
Date#|(zone)
self を複製して、使用する時差を設定し直します。
  zone Timezone オブジェクトまたはそれを指定する数値or文字列
Date#new_period(period)
Date#/(period)
self を端点とし、期間 period の Period オブジェクトを生成します。
終点は期間に含まれません。
(現状はPeriod オブジェクト未作成のため、かわりにRange オブジェクトを
 返します)
  period 期間を示す ISO8601期間文字列
Date#show_all_date([k=true [, n=true]])
年から秒の小数までのすべての要素を返します。
  k  有効な k 番目の日付表現に対応する値を返すよう指示します。
     true ならば、すべての有効な日付表現を配列で返します。
  n  true なら年から秒の小数まですべての要素を返します。
     数値ならば、対応する要素のみを返します。
Date#+(n)
self から n だけ後の Date オブジェクトを返します。
  n  数値(Numeric )の場合、n 日後の Date オブジェクトを返します。
     剰余(Residue )の場合、当日または以降の日付で最初に条件を満たす
     Date オブジェクトを返します。
     文字列(String )の場合、対応する剰余またはISO8601期間文字列を
     検索して、その指定に従います。
Date#-(x)
x が Date オブジェクトなら、self と x との間の日数差を返します。
その他のオブジェクトなら x だけ前の Date オブジェクトを返します。
  x  日付(Date )の場合、self と x との間の日数差を返します。
     数値(Numeric )の場合、x 日前の Date オブジェクトを返します。
     剰余(Residue )の場合、以前の日付で最後に条件を満たす Date  
     オブジェクトを返します。
     文字列(String )の場合、対応する剰余またはISO8601期間文字列を
     検索して、その指定に従って求めた Date オブジェクトを返します。
Date#<=>(other)
両者を比較して、-1, 0, 1を返します。
  other  比較対象の Numeric , Date オブジェクト
Date#===(other)
両者のユリウス通日(rjd)を比較して、一致していれば真を返します。
  other  比較対象の Numeric , Date オブジェクト
Date#step(limit, step) {|date| ... }
self から limit まで step 刻みでブロックを実行します。
  limit  終点のDate オブジェクト
  step   刻みを指定するNumeric オブジェクトまたはISO8601期間文字列
Date#[key]
key で指定した暦注を返します。
  key    暦注

Date::Extended クラス 変数:

Date::Extended クラス メソッド:

Extended.calendar_element(key, proc)
暦注の定義を登録します。
  key    暦注名
  proc   暦注の値の求め方
Extended._load(str)
MarshalExtended オブジェクトの読み込みに用います。
(未完成,Calendar が singleton の場合の対応要)
  str  Marshal  された文字列
Extended.new_date(cal, rjd, zone)
指定されたユリウス通日のDate /Date::Extended オブジェクトを生成します。
従前より添付の Date クラスのオブジェクトが生成されるのは、cal が Civil, 
rjdが整数, zone が 0 の場合です。新バージョンの Date クラスのオブジェク
トが生成されるのは cal が Civil, zone が固定の場合です。
  cal   Calendar オブジェクト
  rjd   ユリウス通日
  zone  Timezone オブジェクト
Extended.new(cal, rjd, zone)
指定されたユリウス通日の Extended オブジェクトを生成します。
  cal   Calendar オブジェクト
  rjd   ユリウス通日
  zone  Timezone オブジェクト

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

Extended#yday
年初からの通算日数(1〜年の日数)を返します。
運用表現の年初と暦法の年初が異なる場合は、運用上の年初を基準とします。
Extended#wday
七曜を返します(日曜:0, ... 土曜:6)。
運用表現の日の区切りが午前0時でない場合、運用表現の日付を基準とします。
(例えば夕方から1日が始まる場合、午前0時前は1日進んだ七曜が返ります)
Extended#cweek([d=4 [, w=1]])
暦週を返します(1-53)。
  d  1月d日を最初の週に固定します。
  w  w 曜日を週の始めとします(0:日曜,..,6土曜)
Extended#>>(n)
n ヶ月後の Extended オブジェクトを返します。
  n  Numeric オブジェクト
Extended#year ([k=1])
Extended#month ([k=1])
Extended#day ([k=1])
Extended#hour ([k=1])
Extended#minute ([k=1])
Extended#second ([k=1])
Extended#usec ([k=1])
Extended#mon ([k=1])
Extended#mday ([k=1])
Extended#min ([k=1])
Extended#sec ([k=1])
それぞれ、年・月・日・時・分・秒・秒の小数, 月・日・分・秒を返します。
(「日」は月初からの通算日数(1 または 0〜月の日数))
  k  有効な k 番目の日付表現に対応する値を返すよう指示します。
    (暦法として Eras オブジェクトを使用している場合)
Extended#lapse([leap=false]
1970-01-01T00:00:00Z からの経過秒数を返します。
秒数が負の場合は、false を返します。
(閏秒の考慮はまだしていません)
  leap  閏秒を考慮するとき true, 考慮しないとき false
Extended#to_s([n=1])
日時に対応するISO8601拡張文字列を返します。
  n   n 番目の日時を表す表現の組に変換するかを指定
Extended#inspect
Kernel  モジュールで定義されている組み込み関数 p が使用します。
Extended#strftime([fmt='%FT%T%f%Z'])
fmt で指定された日時の書式に従って、日時を文字列に変換します。
  fmt  日時の書式
Extended#_dump(limit)
Marshal  が Extendedオブジェクトの書き出しに用います。
(未完成,Calendar が singleton の場合の対応要)
  limit  再帰を制限するレベル(実際は何を指定されても制限しません)