                      date2 - もうひとつの日付計算クラス

Date

  用語の定義

   いくつか用語の定義は、ISO 8601、および JIS X 0301 に基づきます。

    暦日付

   暦日付は、暦年、暦月、および暦月の中の序数によって 指定される特定の日
   の日付です。

   つまり、ごく当たり前の年月日による日付です。

    年日付

   年日付は、暦年、および暦年の中の序数によって指定される 特定の日の日付
   です。

    暦週日付

   暦週日付は、暦週と暦年中の序数による日付です。

   暦週は、暦年中の序数によって指定される特定の7日の期間であり、月曜から
   始まります。その年の第1暦週は、最初の木曜日を含む週とします。これは、1
   月4日を含む週と同じです。

    ユリウス日

   ユリウス日は紀元前4713年1月1日 (ユリウス暦) 正午 (グリニッジ平均時) を
   暦元とした通日 (経過日数) です。

   この文書で、天文学的なユリウス日とは、本来のユリウス日と同じものです。
   また、年代学的なユリウス日とは、地方時における零時を一日の始まりとする
   流儀です。

   この文書で、単に「ユリウス日」といった場合、それは本来のユリウス日でな
   く、「年代学的なユリウス日」を意味しています。

    修正ユリウス日

   修正ユリウス日は西暦1858年11月17日 (グレゴリオ暦) 零時 (協定世界時) を
   暦元とした通日 (経過日数) です。

   この文書で、天文学的な修正ユリウス日とは、本来の修正ユリウス日と同じも
   のです。また、年代学的な修正ユリウス日とは、地方時における零時を一日の
   始まりとする流儀です。

   この文書で、単に「修正ユリウス日」といった場合、それは本来の修正ユリウ
   ス日でなく、「年代学的な修正ユリウス日」を意味しています。

  スーパークラス

   Object

  インクルードしているモジュール

   Comparable

  クラスメソッド

   civil([year[, mon[, mday[, start]]]])
   new([year[, mon[, mday[, start]]]])
          暦日付に相当する日付オブジェクトを生成します。

          このクラスでは、紀元前の年を天文学の流儀で勘定します。 1年の前
          は零年、零年の前は-1年、のようにします。 月、および月の日は負、
          または正の数でなければなりません (負のときは最後からの序数)。
          零であってはなりません。

          最後の引数は、グレゴリオ暦をつかい始めた日をあらわすユリウス日
          です。 グレゴリオ暦の指定として真、ユリウス暦の指定として偽を与
          えることもできます。 省略した場合は、Date::ITALY (1582年10月15
          日) になります。

          jd も参照してください。

   commercial([cwyear[, cweek[, cwday[, start]]]])
          暦週日付に相当する日付オブジェクトを生成します。

          週、および週の日 (曜日) は負、 または正の数でなければなりません
          (負のときは最後からの序数)。 零であってはなりません。

          このメソッドに改暦前の日付を与えることはできません。

          jd、および new も参照してください。

   jd([jd[, start]])
          ユリウス日に相当する日付オブジェクトを生成します。

          このクラスのいくつかの重要なメソッドで、 負のユリウス日は保証さ
          れません。

          new も参照してください。

   ordinal([year[, yday[, start]]])
          年日付に相当する日付オブジェクトを生成します。

          月の日は負、 または正の数でなければなりません (負のときは最後か
          らの序数)。 零であってはなりません。

          jd、および new も参照してください。

   parse(str[, complete[, start]])
          与えられた日付表現を解析し、 その情報に基づいて日付オブジェクト
          を生成します。

          省略できる最後の引数が真で、年が0から99の範囲であれば、 年の下2
          桁表現であるとみなしこれを補います。 なお、省略した場合は、偽と
          みなします。

          _parse も利用できます。 このメソッドは parse と似ていますが、日
          付オブジェクトを生成せずに、 見いだした要素をハッシュで返します
          。

   strptime(str[, format[, start]])
          与えられた雛型で日付表現を解析し、 その情報に基づいて日付オブジ
          ェクトを生成します。

          _strptime も利用できます。 このメソッドは strptime と似ています
          が、日付オブジェクト生成せずに、 見いだした要素をハッシュで返し
          ます。

          strptime(3)、および strftime も参照してください。

   today([start])
          現在の日付に相当する日付オブジェクトを生成します。

   valid_civil? (year, mon, mday[, start])
   valid_date? (year, mon, mday[, start])
          正しい暦日付であれば、相当するユリウス日を返します。 そうでない
          なら、偽を返します。

          jd、および civil も参照してください。

   valid_commercial? (cwyear, cweek, cwday[, start])
          正しい暦週日付であれば、相当するユリウス日を返します。 そうでな
          いなら、偽を返します。

          jd、および commercial も参照してください。

   valid_jd? (jd[, start])
          ひとつ目の引数をそのまま返します。

          対称性のため用意されていますが、実際的に意味はありません。

          jd も参照してください。

   valid_ordinal? (year, yday[, start])
          正しい年日付であれば、相当するユリウス日を返します。 そうでない
          なら、偽を返します。

          jd、および ordinal も参照してください。

  メソッド

   self + n
          self から n 日後の日付オブジェクトを返します。 n は数値でなけれ
          ばなりません。

   self - x
          x が日付オブジェクトなら、ふたつの差を返します。 あるいは x が
          数値ならば、self より x 日前の日付を返します。

   self << n
          self より n ヶ月前の日付オブジェクトを返します。 n は数値でなけ
          ればなりません。

   self <=> other
          ふたつを比較し、-1、零、あるいは 1 を返します。 other は日付オ
          ブジェクトか、 天文学的なユリウス日をあらわす数値でなければなり
          ません。

   self === other
          同じ日なら真を返します。

   self >> n
          self から n ヶ月後の日付オブジェクトを返します。 n は数値でなけ
          ればなりません。

   asctime
   ctime
          asctime(3) 書式の文字列を返します (ただし、末尾の "\n\0" は除く
          )。

   cwday
          暦週の日 (曜日) を返します (1-7、月曜は1)。

   cweek
          暦週を返します (1-53)。

   cwyear
          暦週における年を返します。

   downto(min){|date| ...}
          このメソッドは、step(min, -1){|date| ...} と等価です。

   england
          このメソッドは、new_start(Date::ENGLAND) と等価です。

   gregorian
          このメソッドは、new_start(Date::GREGORIAN) と等価です。

   italy
          このメソッドは、new_start(Date::ITALY) と等価です。

   jd
          ユリウス日を返します。 時刻を含みません。

          rjd も利用できます。 このメソッドは jd と似ていますが、天文学的
          なユリウス日を返します。 時刻を含みます。

   julian
          このメソッドは、new_start(Date::JULIAN) と等価です。

   leap?
          閏年なら真を返します。

   mday
   day
          月の日を返します (1-31)。

   mjd
          修正ユリウス日を返します。 時刻の情報を含みません。

          rmjd も利用できます。 このメソッドは mjd と似ていますが、天文学
          的な修正ユリウス日を返します。 時刻を含みます。

   mon
   month
          月を返します (1-12)。

   new_start([start])
          self を複製して、その改暦日を設定しなおします。 引数を省略した
          場合は、Date::ITALY (1582年10月15日) になります。

          new も参照してください。

   start
          改暦日をあらわすユリウス日を返します。

          new も参照してください。

   step(limit, step){|date| ...}
          ブロックの評価を繰り返します。ブロックは日付オブジェクトをとり
          ます。 limit は日付オブジェクトでなければなりません、 また step
          は非零でなければなりません。

   strftime([format])
          与えられた雛型で日付を書式づけます。 つぎの変換仕様をあつかいま
          す:

          %A, %a, %B, %b, %C, %c, %D, %d, %e, %F, %G, %g, %H, %h, %I, %j,
          %k, %l, %M, %m, %n, %P, %p, %R, %r, %S, %s, %T, %t, %U, %u, %V,
          %v, %W, %w, %X, %x, %Y, %y, %Z, %z, %%, %+

          strftime(3)、および strptime も参照してください。

   succ
   next
          翌日の日付オブジェクトを返します。

   to_s
          ISO 8601 書式の文字列を返します (拡大形式はつかいません)。

   upto(max){|date| ...}
          このメソッドは、step(max, 1){|date| ...} と等価です。

   wday
          曜日を返します (0-6、日曜日は零)。

   yday
          年の日を返します (1-366)。

   year
          年を返します。

DateTime

  スーパークラス

   Date

  クラスメソッド

   civil([year[, mon[, mday[, hour[, min[, sec[, offset[, start]]]]]]]])
   new([year[, mon[, mday[, hour[, min[, sec[, offset[, start]]]]]]]])
          暦日付に相当する日時オブジェクトを生成します。

   commercial([cwyear[, cweek[, cwday[, hour[, min[, sec[, offset[,
          start]]]]]]]])
          暦週日付に相当する日時オブジェクトを生成します。

   jd([jd[, hour[, min[, sec[, offset[, start]]]]]])
          ユリウス日に相当する日時オブジェクトを生成します。

   now([start])
          現在の時刻に相当する日時オブジェクトを生成します。

   ordinal([year[, yday[, hour[, min[, sec[, offset[, start]]]]]]])
          年日付に相当する日時オブジェクトを生成します。

  メソッド

   hour
          時間を返します (0-23)。

   min
          分を返します (0-59)。

   new_offset([offset])
          self を複製して、その時差を設定しなおします。 引数を省略した場
          合は、零 (協定世界時) になります。

          new も参照してください。

   offset
          時差を返します。

   sec
          秒を返します (0-59)。

   zone
          タイムゾーンを返します。

                          date/holiday - 祝祭日の判定

Date

  クラスメソッド

   gregorian_easter(year[, start])
   easter(year[, start])
          グレゴリオ暦における、その年の復活祭の日曜日を返します。

   julian_easter(year[, start])
          ユリウス暦における、その年の復活祭の日曜日を返します。

   nth_kday(n, k, year, mon[, start])
          その月の第NK曜日、 N番目 (-5 から 5、ただし零はのぞく) の K曜日
          (0-6) を返します。

  メソッド

   easter?
          復活祭の日曜日であれば真を返します。

   national_holiday?
          「国民の祝日に関する法律」による休日、 もしくは、いくつかの特別
          な休日であれば真を返します。

          このメソッドは、第七次改正 「国民の祝日に関する法律及び老人福祉
          法の一部を改正する法律」 (平成13年6月22日号外法律59号)に対応済
          みです。

          春分日、秋分日は前年の2月はじめの官報に掲載されるものが正しいの
          ですが、 ここでは計算で求めています。 つまり将来については間違
          えることもあるかもしれません。 なお、平成15年 (2003) までは官報
          等により確認済みです。

   nth_kday?(n, k)
          その月の第NK曜日、N番目 (-5 から 5、ただし零はのぞく) の K曜日
          (0-6) であれば真を返します。

   old_national_holiday?
          舊祝祭日であれば眞を返します。 此は未だ實驗的な代物で有ります。

                         parsedate - 日付と時刻の解析

ParseDate

  モジュール関数

   parsedate(str[, complete])
          与えられた日付表現を解析し、見いだした要素を 配列 (年、月、日、
          時、分、秒、タイムゾーン、曜日) で返します。

          省略できる最後の引数が真で、年が0から99の範囲であれば、 年の下2
          桁表現であるとみなしこれを補います。 なお、省略した場合は、偽と
          みなします。

          Date::parse も参照してください。
