class Date

[edit]

要約

日付だけでなく時刻も扱える Time も利用できます。

簡単なつかいかた



require 'date'

a = Date.new(1993, 2, 24)
b = Date.parse('1993-02-24')
b += 10

b - a            #=> 10
b.year           #=> 1993
b.strftime('%a') #=> "Sat"

yesterday = Date.today - 1

用語の定義

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

暦日付

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

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

年間通算日 (年日付)

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

暦週日付

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

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

ユリウス日

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

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

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

修正ユリウス日

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

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

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

目次

特異メソッド
インスタンスメソッド
定数

継承しているメソッド

Comparableから継承しているメソッド

特異メソッド

_httpdate(str) -> Hash[permalink][rdoc][edit]

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

Date.httpdate も参照してください。

[PARAM] str:
日付をあらわす文字列
_iso8601(str) -> Hash[permalink][rdoc][edit]

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

Date.iso8601 も参照してください。

[PARAM] str:
日付をあらわす文字列
_jisx0301(str) -> Hash[permalink][rdoc][edit]

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

Date.jisx0301 も参照してください。

[PARAM] str:
日付をあらわす文字列
_parse(str, complete = true) -> Hash[permalink][rdoc][edit]

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

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

[PARAM] str:
日付をあらわす文字列
[PARAM] complete:
年を補完するか
_rfc2822(str) -> Hash[permalink][rdoc][edit]
_rfc822(str) -> Hash

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

Date.rfc2822 も参照してください。

[PARAM] str:
日付をあらわす文字列
_rfc3339(str) -> Hash[permalink][rdoc][edit]

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

Date.rfc3339 も参照してください。

[PARAM] str:
日付をあらわす文字列
_strptime(str, format = '%F') -> Hash[permalink][rdoc][edit]

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

[PARAM] str:
日付をあらわす文字列
[PARAM] format:
書式文字列

書式文字列に使用できるものは以下の通りです。

  • %A: 曜日の名称(Sunday, Monday ... )
  • %a: 曜日の省略名(Sun, Mon ... )
  • %B: 月の名称(January, February ... )
  • %b: 月の省略名(Jan, Feb ... )
  • %C: 世紀 (2009年であれば 20)
  • %c: 日付と時刻 (%a %b %e %T %Y)
  • %D: 日付 (%m/%d/%y)
  • %d: 日(01-31)
  • %e: 日。一桁の場合、半角空白で埋める ( 1..31)
  • %F: %Y-%m-%d と同等 (ISO 8601の日付フォーマット)
  • %H: 24時間制の時(00-23)
  • %h: %b と同等
  • %I: 12時間制の時(01-12)
  • %j: 年中の通算日(001-366)
  • %k: 24時間制の時。一桁の場合、半角空白で埋める ( 0..23)
  • %L: ミリ秒 (000..999)
  • %l: 12時間制の時。一桁の場合、半角空白で埋める ( 0..12)
  • %M: 分(00-59)
  • %m: 月を表す数字(01-12)
  • %n: 改行 (\n)
  • %N: 秒の小数点以下
  • %P: 午前または午後(am,pm)
  • %p: 午前または午後(AM,PM)
  • %Q: 1970-01-01 00:00:00 UTC からの経過ミリ秒
  • %R: 24時間制の時刻。%H:%M と同等。
  • %r: 12時間制の時刻。%I:%M:%S %p と同等。
  • %S: 秒(00-60) (60はうるう秒)
  • %s: 1970-01-01 00:00:00 UTC からの経過秒
  • %T: 24時間制の時刻。%H:%M:%S と同等。
  • %t: タブ文字 (\t)
  • %U: 週を表す数。最初の日曜日が第1週の始まり(00-53)
  • %u: 月曜日を1とした、曜日の数値表現 (1..7)
  • %V: ISO 8601形式の暦週 (01..53)
  • %v: VMS形式の日付 (%e-%b-%Y)
  • %W: 週を表す数。最初の月曜日が第1週の始まり(00-53)
  • %w: 曜日を表す数。日曜日が0(0-6)
  • %X: 時刻 (%Tと同等)
  • %x: 日付 (%Dと同等)
  • %Y: 西暦を表す数
  • %y: 西暦の下2桁(00-99)
  • %z: タイムゾーン。UTCからのオフセット (例 +0900)
  • %:z: タイムゾーン。コロンが入ったUTCからのオフセット (例 +09:00)
  • %::z: タイムゾーン。コロンが入った秒まで含むUTCからのオフセット (例 +09:00:00)
  • %Z: タイムゾーン名
  • %%: %自身
  • %+: date(1)の形式 (%a %b %e %H:%M:%S %Z %Y)
_xmlschema(str) -> Hash[permalink][rdoc][edit]

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

Date.xmlschema も参照してください。

[PARAM] str:
日付をあらわす文字列
civil(year = -4712, mon = 1, mday = 1, start = Date::ITALY) -> Date[permalink][rdoc][edit]
new(year = -4712, mon = 1, mday = 1, start = Date::ITALY) -> Date

暦日付に相当する日付オブジェクトを生成します。

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

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

Date.jd も参照してください。

[PARAM] year:
[PARAM] mon:
[PARAM] mday:
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
[EXCEPTION] Date::Error:
正しくない日付になる組み合わせである場合に発生します。


require 'date'
Date.new(2017, 9, 20)  # => #<Date: 2017-09-20 ...>
commercial(cwyear = -4712, cweek = 1, cwday = 1, start = Date::ITALY) -> Date[permalink][rdoc][edit]

暦週日付に相当する日付オブジェクトを生成します。

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

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

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

[PARAM] cwyear:
[PARAM] cweek:
[PARAM] cwday:
週の日 (曜日)
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
[EXCEPTION] Date::Error:
正しくない日付になる組み合わせである場合に発生します。
gregorian_leap?(year) -> bool[permalink][rdoc][edit]
leap?(year) -> bool

グレゴリオ暦の閏年なら真を返します。

[PARAM] year:
httpdate(str = 'Mon, 01 Jan -4712 00:00:00 GMT', start = Date::ITALY) -> Date[permalink][rdoc][edit]

[RFC2616] で定められた書式の日付を解析し、その情報に基づいて日付オブジェクトを生成します。

Date._httpdate も参照してください。

[PARAM] str:
日付をあらわす文字列
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
iso8601(str = '-4712-01-01', start = Date::ITALY) -> Date[permalink][rdoc][edit]

いくつかの代表的な [[ISO:8601]] 書式の日付を解析し、その情報に基づいて日付オブジェクトを生成します。

[PARAM] str:
日付をあらわす文字列

Date._iso8601 も参照してください。

[PARAM] str:
日付をあらわす文字列
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
jd(jd = 0, start = Date::ITALY) -> Date[permalink][rdoc][edit]

ユリウス日に相当する日付オブジェクトを生成します。

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

Date.new も参照してください。

[PARAM] jd:
ユリウス日
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
jisx0301(str = '-4712-01-01', start = Date::ITALY) -> Date[permalink][rdoc][edit]

いくつかの代表的な [[JIS:X 0301]] 書式の日付を解析し、その情報に基づいて日付オブジェクトを生成します。

Date._jisx0301 も参照してください。

[PARAM] str:
日付をあらわす文字列
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
julian_leap?(year) -> bool[permalink][rdoc][edit]

ユリウス暦の閏年なら真を返します。

西暦4年は真になりますが、これは歴史的には正しくありません。

[PARAM] year:
ordinal(year = -4712, yday = 1, start = Date::ITALY) -> Date[permalink][rdoc][edit]

年間通算日 (年日付) に相当する日付オブジェクトを生成します。

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

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

[PARAM] year:
[PARAM] yday:
年の日
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
[EXCEPTION] Date::Error:
正しくない日付になる組み合わせである場合に発生します。
parse(str = '-4712-01-01', complete = true, start = Date::ITALY) -> Date[permalink][rdoc][edit]

与えられた日付表現を解析し、その情報に基づいて日付オブジェクトを生成します。

年が "00" から "99" の範囲であれば、年の下2桁表現であるとみなしこれを補います。この振舞いを抑止したい場合は、ヒントとして、complete に false を与えます。

Date._parse も参照してください。

[PARAM] str:
日付をあらわす文字列
[PARAM] complete:
年を補完するか
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
[EXCEPTION] Date::Error:
正しくない日付になる組み合わせである場合に発生します。
rfc2822(str = 'Mon, 1 Jan -4712 00:00:00 +0000', start = Date::ITALY) -> Date[permalink][rdoc][edit]
rfc822(str = 'Mon, 1 Jan -4712 00:00:00 +0000', start = Date::ITALY) -> Date

[RFC2822] で定められた書式の日付を解析し、その情報に基づいて日付オブジェクトを生成します。

Date._rfc2822 も参照してください。

[PARAM] str:
日付をあらわす文字列
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
rfc3339(str = '-4712-01-01T00:00:00+00:00', start = Date::ITALY) -> Date[permalink][rdoc][edit]

[RFC3339] 書式の日付を解析し、その情報に基づいて日付オブジェクトを生成します。

Date._rfc3339 も参照してください。

[PARAM] str:
日付をあらわす文字列
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
strptime(str = '-4712-01-01', format = '%F', start = Date::ITALY) -> Date[permalink][rdoc][edit]

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

Date._strptime も参照してください。また strptime(3)、および Date#strftime も参照してください。

[PARAM] str:
日付をあらわす文字列
[PARAM] format:
書式
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
[EXCEPTION] Date::Error:
正しくない日付になる組み合わせである場合に発生します。
today(start = Date::ITALY) -> Date[permalink][rdoc][edit]

現在の日付に相当する日付オブジェクトを生成します。

[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日


require 'date'
Date.today  # => #<Date: 2017-09-20 ...>
valid_civil?(year, mon, mday, start = Date::GREGORIAN) -> bool[permalink][rdoc][edit]
valid_date?(year, mon, mday, start = Date::GREGORIAN) -> bool

正しい暦日付であれば真、そうでないなら偽を返します。

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

[PARAM] year:
[PARAM] mon:
[PARAM] mday:
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
valid_commercial?(cwyear, cweek, cwday, start = Date::GREGORIAN) -> bool[permalink][rdoc][edit]

正しい暦週日付であれば真、そうでないなら偽を返します。

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

[PARAM] cwyear:
[PARAM] cweek:
[PARAM] cwday:
週の日 (曜日)
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
valid_jd?(jd, start = Date::GREGORIAN) -> bool[permalink][rdoc][edit]

真を返します。

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

Date.jd も参照してください。

[PARAM] jd:
ユリウス日
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
valid_ordinal?(year, yday, start = Date::GREGORIAN) -> bool[permalink][rdoc][edit]

正しい年間通算日 (年日付) であれば真、そうでないなら偽を返します。

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

[PARAM] year:
[PARAM] yday:
年の日
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
xmlschema(str = '-4712-01-01', start = Date::ITALY) -> Date[permalink][rdoc][edit]

XML Schema による書式の日付を解析し、その情報に基づいて日付オブジェクトを生成します。

Date._xmlschema も参照してください。

[PARAM] str:
日付をあらわす文字列
[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日

インスタンスメソッド

self + n -> Date[permalink][rdoc][edit]

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

[PARAM] n:
日数
[EXCEPTION] TypeError:
n が数値でない場合に発生します。
self - x -> Rational | Date[permalink][rdoc][edit]

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

[PARAM] x:
日数、あるいは日付オブジェクト
[EXCEPTION] TypeError:
x が数値でも日付オブジェクトでもない場合に発生します。
self << n -> Date[permalink][rdoc][edit]

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


require 'date'
Date.new(2001,2,3)  <<  1   #=> #<Date: 2001-01-03 ...>
Date.new(2001,2,3)  << -2   #=> #<Date: 2001-04-03 ...>

対応する月に同じ日が存在しない時は、代わりにその月の末日が使われます。


require 'date'
Date.new(2001,3,28) << 1   #=> #<Date: 2001-02-28 ...>
Date.new(2001,3,31) << 1   #=> #<Date: 2001-02-28 ...>

このことは以下のように、もしかすると予期しない振る舞いをするかもしれません。


require 'date'
Date.new(2001,3,31) << 2         #=> #<Date: 2001-01-31 ...>
Date.new(2001,3,31) << 1 << 1    #=> #<Date: 2001-01-28 ...>

Date.new(2001,3,31) << 1 << -1   #=> #<Date: 2001-03-28 ...>

Date#prev_month も参照してください。

[PARAM] n:
月数
self <=> other -> -1 | 0 | 1 | nil[permalink][rdoc][edit]

二つの日付を比較します。同じ日付なら 0 を、self が other よりあとの日付なら 1 を、その逆なら -1 を返します。

other は日付オブジェクトか、天文学的なユリウス日をあらわす数値を指定します。そうでない場合、比較ができないので nil を返します。


require "date"

p Date.new(2001, 2, 3) <=> Date.new(2001, 2, 4) # => -1
p Date.new(2001, 2, 3) <=> Date.new(2001, 2, 3) # => 0
p Date.new(2001, 2, 3) <=> Date.new(2001, 2, 2) # => 1
p Date.new(2001, 2, 3) <=> Object.new           # => nil
p Date.new(2001, 2, 3) <=> Rational(4903887, 2) # => 0
[PARAM] other:
日付オブジェクトまたは数値
self === other -> bool[permalink][rdoc][edit]

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

[PARAM] other:
日付オブジェクト
self >> n -> Date[permalink][rdoc][edit]

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


require 'date'
Date.new(2001,2,3)  >>  1   #=> #<Date: 2001-03-03 ...>
Date.new(2001,2,3)  >> -2   #=> #<Date: 2000-12-03 ...>

対応する月に同じ日が存在しない時は、代わりにその月の末日が使われます。


require 'date'
Date.new(2001,1,28) >> 1   #=> #<Date: 2001-02-28 ...>
Date.new(2001,1,31) >> 1   #=> #<Date: 2001-02-28 ...>

このことは以下のように、もしかすると予期しない振る舞いをするかもしれません。


require 'date'
Date.new(2001,1,31) >> 2         #=> #<Date: 2001-03-31 ...>
Date.new(2001,1,31) >> 1 >> 1    #=> #<Date: 2001-03-28 ...>

Date.new(2001,1,31) >> 1 >> -1   #=> #<Date: 2001-01-28 ...>

Date#next_month も参照してください。

[PARAM] n:
月数
ajd -> Rational[permalink][rdoc][edit]

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

amjd -> Rational[permalink][rdoc][edit]

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

asctime -> String[permalink][rdoc][edit]
ctime -> String

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

cwday -> Integer[permalink][rdoc][edit]

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

cweek -> Integer[permalink][rdoc][edit]

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

cwyear -> Integer[permalink][rdoc][edit]

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

mday -> Integer[permalink][rdoc][edit]
day -> Integer

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

deconstruct_keys(array_of_names_or_nil) -> Hash[permalink][rdoc][edit]

パターンマッチに使用する名前と値の Hash を返します。

キーに利用できる名前は以下の通りです。

  • :year
  • :month
  • :day
  • :yday
  • :wday
[PARAM] array_of_names_or_nil:
パターンマッチに使用する名前の配列を指定します。nil の場合は全てをパターンマッチに使用します。


d = Date.new(2022, 10, 5)

if d in wday: 3, day: ..7 # deconstruct_keys が使われます
  puts "first Wednesday of the month"
end
#=> "first Wednesday of the month" が出力される

case d
in year: ...2022
  puts "too old"
in month: ..9
  puts "quarter 1-3"
in wday: 1..5, month:
  puts "working day in month #{month}"
end
#=> "working day in month 10" が出力される

# クラスのチェックと組み合わせて利用することもできます
if d in Date(wday: 3, day: ..7)
  puts "first Wednesday of the month"
end

[SEE_ALSO] パターンマッチ/非プリミティブなオブジェクトのマッチ: deconstruct メソッドと deconstruct_keys メソッド

downto(min) {|date| ...} -> self[permalink][rdoc][edit]
downto(min) -> Enumerator

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

[PARAM] min:
日付オブジェクト

[SEE_ALSO] Date#step, Date#upto

england -> Date[permalink][rdoc][edit]

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

Date#new_start、および Date::ENGLAND を参照してください。

friday? -> bool[permalink][rdoc][edit]

金曜日なら真を返します。

gregorian -> Date[permalink][rdoc][edit]

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

Date#new_start、および Date::GREGORIAN を参照してください。

gregorian? -> bool[permalink][rdoc][edit]

グレゴリオ暦なら真を返します。

httpdate -> String[permalink][rdoc][edit]

[RFC2616] ([RFC1123]) で定められた書式の文字列を返します。

iso8601 -> String[permalink][rdoc][edit]
rfc3339 -> String

[[ISO:8601]] 書式の文字列を返します (拡大表記はつかいません)。

italy -> Date[permalink][rdoc][edit]

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

Date#new_start、および Date::ITALY を参照してください。

jd -> Integer[permalink][rdoc][edit]

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

Date#ajd も参照してください。

jisx0301 -> String[permalink][rdoc][edit]

[[JIS:X 0301]] 書式の文字列を返します。ただし、明治以前については [[ISO:8601]] 書式になります。なお、明治6年以前についても太陰太陽暦を使用することはありません。

julian -> Date[permalink][rdoc][edit]

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

Date#new_start、および Date::JULIAN を参照してください。

julian? -> bool[permalink][rdoc][edit]

ユリウス暦なら真を返します。

ld -> Integer[permalink][rdoc][edit]

リリウス日を返します。

leap? -> bool[permalink][rdoc][edit]

閏年なら真を返します。

mjd -> Integer[permalink][rdoc][edit]

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

Date#amjd も参照してください。

mon -> Integer[permalink][rdoc][edit]
month -> Integer

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

monday? -> bool[permalink][rdoc][edit]

月曜日なら真を返します。

new_start(start = Date::ITALY) -> Date[permalink][rdoc][edit]

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

Date.new も参照してください。

[PARAM] start:
グレゴリオ暦をつかい始めた日をあらわすユリウス日
succ -> Date[permalink][rdoc][edit]
next -> Date

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

next_day(n = 1) -> Date[permalink][rdoc][edit]

n 日後を返します。

Date#succ も参照してください。

[PARAM] n:
日数
next_month(n = 1) -> Date[permalink][rdoc][edit]

n ヶ月後を返します。

Date#>> も参照してください。

[PARAM] n:
月数
next_year(n = 1) -> Date[permalink][rdoc][edit]

n 年後を返します。

self >> (n * 12) に相当します。



require 'date'
Date.new(2001,2,3).next_year      #=> #<Date: 2002-02-03 ...>
Date.new(2008,2,29).next_year     #=> #<Date: 2009-02-28 ...>
Date.new(2008,2,29).next_year(4)  #=> #<Date: 2012-02-29 ...>

Date#>> も参照してください。

[PARAM] n:
年数
prev_day(n = 1) -> Date[permalink][rdoc][edit]

n 日前を返します。

[PARAM] n:
日数
prev_month(n = 1) -> Date[permalink][rdoc][edit]

n ヶ月前を返します。

Date#<< も参照してください。

[PARAM] n:
月数
prev_year(n = 1) -> Date[permalink][rdoc][edit]

n 年前を返します。

self << (n * 12) に相当します。



require 'date'
Date.new(2001,2,3).prev_year      #=> #<Date: 2000-02-03 ...>
Date.new(2008,2,29).prev_year     #=> #<Date: 2007-02-28 ...>
Date.new(2008,2,29).prev_year(4)  #=> #<Date: 2004-02-29 ...>

Date#<< も参照してください。

[PARAM] n:
年数
rfc2822 -> String[permalink][rdoc][edit]
rfc822 -> String

[RFC2822] で定められた書式の文字列を返します。

saturday? -> bool[permalink][rdoc][edit]

土曜日なら真を返します。

start -> Integer[permalink][rdoc][edit]

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

Date.new も参照してください。

step(limit, step = 1) {|date| ...} -> self[permalink][rdoc][edit]
step(limit, step = 1) -> Enumerator

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

[PARAM] limit:
日付オブジェクト
[PARAM] step:
歩幅

[SEE_ALSO] Date#downto, Date#upto

strftime(format = '%F') -> String[permalink][rdoc][edit]

与えられた雛型で日付を書式づけます。

つぎの変換仕様をあつかいます:

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

GNU 版にあるような幅指定などもできます。

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

[PARAM] format:
書式
sunday? -> bool[permalink][rdoc][edit]

日曜日なら真を返します。

thursday? -> bool[permalink][rdoc][edit]

木曜日なら真を返します。

to_date -> Date[permalink][rdoc][edit]

対応する Date オブジェクトを返します。

to_datetime -> DateTime[permalink][rdoc][edit]

対応する DateTime オブジェクトを返します。

to_s -> String[permalink][rdoc][edit]

[[ISO:8601]] 書式の文字列を返します (拡大表記 ('%Y-%m-%d') を使います)。

to_time -> Time[permalink][rdoc][edit]

対応する Time オブジェクトを返します。

tuesday? -> bool[permalink][rdoc][edit]

火曜日なら真を返します。

upto(max) {|date| ...} -> self[permalink][rdoc][edit]
upto(max) -> Enumerator

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

[PARAM] max:
日付オブジェクト

[SEE_ALSO] Date#step, Date#downto

wday -> Integer[permalink][rdoc][edit]

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

wednesday? -> bool[permalink][rdoc][edit]

水曜日なら真を返します。

xmlschema -> String[permalink][rdoc][edit]

XML Scheme (date) による書式の文字列を返します。

yday -> Integer[permalink][rdoc][edit]

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

year -> Integer[permalink][rdoc][edit]

年を返します。

定数

ENGLAND -> Integer[permalink][rdoc][edit]

英国がグレゴリオ暦をつかい始めた日 (1752年9月14日) をあらわすユリウス日です。この "ENGLAND" の名前は、旧い UNIX の cal(1) の記述に由来します。

[SEE_ALSO] https://www.bell-labs.com/usr/dmr/www/pdfs/man61.pdf

ちなみに、本実装で英国の改暦日を尊重する姿勢がみられるのは前実装からの影響です。前実装が英国の改暦日を尊重していたのは、おそらく cal(1) の影響です。もっとも本実装で一番に尊重されているのは、伊国の改暦日であり、多くの場合、改暦日の既定値は Date::ITALY です。

GREGORIAN -> Date::Infinity[permalink][rdoc][edit]

常にグレゴリオ暦であることを示します。改暦日は無限の過去にあると考えられます。

ITALY -> Integer[permalink][rdoc][edit]

伊国がグレゴリオ暦をつかい始めた日 (1582年10月15日) をあらわすユリウス日です。

JULIAN -> Date::Infinity[permalink][rdoc][edit]

常にユリウス暦であることを示します。改暦日は無限の未来にあると考えられます。