=begin = 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 も参照してください。 =end