Ruby 2.5.0 リファレンスマニュアル > ライブラリ一覧 > dateライブラリ > Dateクラス

class Date

クラス・モジュールの継承リスト: Date < Comparable < Object < Kernel < BasicObject

要約

日付だけでなく時刻も扱える 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日 (グレゴリオ暦) 正子/零時 (協定世界時) を暦元とした通日 (経過日数) です。

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

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

特異メソッド

定義 説明
_httpdate(str) -> Hash

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

_iso8601(str) -> Hash

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

_jisx0301(str) -> Hash

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

_parse(str, complete = true) -> Hash

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

_rfc2822(str) -> Hash
_rfc822(str) -> Hash

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

_rfc3339(str) -> Hash

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

_strptime(str, format = '%F') -> Hash

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

_xmlschema(str) -> Hash

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

civil(year = -4712, mon = 1, mday = 1, start = Date::ITALY) -> Date
new(year = -4712, mon = 1, mday = 1, start = Date::ITALY) -> Date

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

commercial(cwyear = -4712, cweek = 1, cwday = 1, start = Date::ITALY) -> Date

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

gregorian_leap?(year) -> bool
leap?(year) -> bool

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

httpdate(str = 'Mon, 01 Jan -4712 00:00:00 GMT', start = Date::ITALY) -> Date

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

iso8601(str = '-4712-01-01', start = Date::ITALY) -> Date

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

jd(jd = 0, start = Date::ITALY) -> Date

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

jisx0301(str = '-4712-01-01', start = Date::ITALY) -> Date

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

julian_leap?(year) -> bool

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

ordinal(year = -4712, yday = 1, start = Date::ITALY) -> Date

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

parse(str = '-4712-01-01', complete = true, start = Date::ITALY) -> Date

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

rfc2822(str = 'Mon, 1 Jan -4712 00:00:00 +0000', start = Date::ITALY) -> Date
rfc822(str = 'Mon, 1 Jan -4712 00:00:00 +0000', start = Date::ITALY) -> Date

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

rfc3339(str = '-4712-01-01T00:00:00+00:00', start = Date::ITALY) -> Date

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

strptime(str = '-4712-01-01', format = '%F', start = Date::ITALY) -> Date

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

today(start = Date::ITALY) -> Date

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

valid_civil?(year, mon, mday, start = Date::GREGORIAN) -> bool
valid_date?(year, mon, mday, start = Date::GREGORIAN) -> bool

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

valid_commercial?(cwyear, cweek, cwday, start = Date::GREGORIAN) -> bool

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

valid_jd?(jd, start = Date::GREGORIAN) -> bool

真を返します。

valid_ordinal?(year, yday, start = Date::GREGORIAN) -> bool

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

xmlschema(str = '-4712-01-01', start = Date::ITALY) -> Date

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

インスタンスメソッド

定義 説明
self + n -> Date

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

self - x -> Rational | Date

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

self << n -> Date

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

self <=> other -> -1 | 0 | 1 | nil

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

self === other -> bool

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

self >> n -> Date

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

ajd -> Rational

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

amjd -> Rational

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

asctime -> String
ctime -> String

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

cwday -> Integer

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

cweek -> Integer

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

cwyear -> Integer

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

mday -> Integer
day -> Integer

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

downto(min) {|date| ...} -> self
downto(min) -> Enumerator

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

england -> Date

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

friday? -> bool

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

gregorian -> Date

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

gregorian? -> bool

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

httpdate -> String

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

iso8601 -> String
rfc3339 -> String

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

italy -> Date

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

jd -> Integer

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

jisx0301 -> String

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

julian -> Date

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

julian? -> bool

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

ld -> Integer

リリウス日を返します。

leap? -> bool

閏年なら真を返します。

mjd -> Integer

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

mon -> Integer
month -> Integer

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

monday? -> bool

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

new_start(start = Date::ITALY) -> Date

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

succ -> Date
next -> Date

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

next_day(n = 1) -> Date

n 日後を返します。

next_month(n = 1) -> Date

n ヶ月後を返します。

next_year(n = 1) -> Date

n 年後を返します。

prev_day(n = 1) -> Date

n 日前を返します。

prev_month(n = 1) -> Date

n ヶ月前を返します。

prev_year(n = 1) -> Date

n 年前を返します。

rfc2822 -> String
rfc822 -> String

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

saturday? -> bool

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

start -> Integer

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

step(limit, step = 1) {|date| ...} -> self
step(limit, step = 1) -> Enumerator

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

strftime(format = '%F') -> String

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

sunday? -> bool

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

thursday? -> bool

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

to_date -> Date

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

to_datetime -> DateTime

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

to_s -> String

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

to_time -> Time

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

tuesday? -> bool

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

upto(max) {|date| ...} -> self
upto(max) -> Enumerator

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

wday -> Integer

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

wednesday? -> bool

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

xmlschema -> String

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

yday -> Integer

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

year -> Integer

年を返します。

定数

定義 説明
ENGLAND -> Integer

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

GREGORIAN -> Date::Infinity

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

ITALY -> Integer

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

JULIAN -> Date::Infinity

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

継承したメソッド

! != __id__ __send__ instance_eval instance_exec method_missing singleton_method_added singleton_method_removed singleton_method_undefined < <= == > >= between? clamp !~ =~ _dump class clone define_singleton_method display enum_for eql? equal? extend freeze frozen? hash initialize initialize_copy inspect instance_of? instance_variable_defined? instance_variable_get instance_variable_set instance_variables is_a? itself marshal_dump marshal_load method methods nil? object_id pretty_inspect pretty_print pretty_print_cycle pretty_print_inspect pretty_print_instance_variables private_methods protected_methods psych_to_yaml public_method public_methods public_send remove_instance_variable respond_to? respond_to_missing? send singleton_class singleton_method singleton_methods taint tainted? tap to_a to_ary to_hash to_int to_io to_proc to_regexp to_str trust untaint untrust untrusted? yield_self .yaml_tag ::ARGF ::ARGV ::DATA ::ENV ::FALSE ::NIL ::RUBY_COPYRIGHT ::RUBY_DESCRIPTION ::RUBY_ENGINE ::RUBY_ENGINE_VERSION ::RUBY_PATCHLEVEL ::RUBY_PLATFORM ::RUBY_RELEASE_DATE ::RUBY_REVISION ::RUBY_VERSION ::SCRIPT_LINES__ ::STDERR ::STDIN ::STDOUT ::TOPLEVEL_BINDING ::TRUE

追加されるメソッド

定義 説明 ライブラリ
json_create(hash) -> Date

JSON のオブジェクトから Ruby のオブジェクトを生成して返します。

json/add/date
to_json(*args) -> String

自身を JSON 形式の文字列に変換して返します。

json/add/date