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之间的范围中时,会将其看作是年份的后两位数字来进行自动补全。省略时,则看作假。

还可以使用_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

返回儒略日。不包含时刻。

还可以使用ajd。该方法与jd类似,但它返回天文学儒略日。包含时刻。

julian

该方法等价于new_start(Date::JULIAN)

leap?

若为闰年则返回真。

mday
day

返回月中的日 (1-31)。

mjd

返回修正儒略日。不包含时刻信息。

还可以使用amjd。该方法与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

返回第二天的日期对象。

to_s

返回ISO 8601格式的字符串(不使用扩大表示法)。

upto(max){|date| ...}

该方法等价于step(max, 1){|date| ...}

wday

返回星期几(0-6、星期天是0)。

yday

返回年中的日 (1-366)。

year

返回年。