From: Tadayoshi Funaba Date: 1998-10-23T09:25:04+09:00 Subject: [ruby-list:10271] Time.html ----Next_Part(Fri_Oct_23_09:10:48_1998_81)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit ふなばです。 Time.html についての提案です。とりあえず具体的に修正を試みてみました。 差分を添付します。もし、参考になれば幸いです。なんか、もう、イキオイで いろいろヤってしまいました (やりすぎかも)。つかえるところがあったらつ かってください。 以下、手を入れた箇所、および疑問なところについて書きます。 Time クラスとしては、時間 (time interval)、と時刻が同居している状態で すが (times と time 系の機能がある)、ドキュメントで「Time オブジェクト」 といったときは、どうやら、それは時刻のことをいっているようです。文中に あらわれるほとんどの「時間」は「時刻」で、時刻としてよいと思われるもの はそのようにしてみました。 一番はじめに「時間 オブジェクト」とありますが、 これは時刻オブジェクト という意味なのか、時間クラスの間違いなのか。とりあえず、時間クラスじゃ ないかと思ったので、そうしておきました。 mktime の引数の説明が中途半端なようなので、思い切って削り、gm と同じ、 としてみました。 ローカルタイムとローカル時刻という表現があり、統一しようと思ったのです が、すでに地方時や局所時という訳語が一般的につかわれているので、カタカ ナは止めたい気分です。とりあえず、地方時にしてみました (気になったので、 手近にある本で確認したら、局所時のほうが多そうだったが)。 引数などで、整数と限定しているものがありますが、実際には浮動小数点数も 受け容れるものがあり、気がついた範囲で修正しました (数値という表現になっ ているところがあったので、そのようにしたらいいのかとも思いましたが、と りあえず、 並べて書いておきました)。浮動小数点数でなく、実数といういい かたをしているところもあるのですが、区別がよくわからないので、そのまま です。 ctime と to_s は書式が異なるので誤解のないよう、説明を分離しました。 gmtime で「このメソッドを受けとった Timeクラスのインスタンスは」という 表現がありますが、メソッドを受けとる、というのは奇異に思えるので、別の 表現にしてみました。 strftime の %S で (00-61) は (00-60) だと思う。 「1970年1月1日云々」という表現が繰り返されているのですが、それを止めて、 どこかで定義しておくと、ひょっとしてスッキリするかもしれないな、と思っ て試しにそうしてみました。ここで起算時という勝手に用意した言葉をつかっ ています (やっぱり、Epoch でよかったかもしれない)。UTC というのは時刻 なわけですから「UTC 時刻」のような表現があるとちょっと妙な気がします。 UTC で意味が通じないという危惧があって、無意識にそう表現されたようにも 思えます。個人的には協定世界時と書きたい気分なので、そうしてみました。 触っていないのですが、 >localtime(gmtime も)の挙動はシステムのlocaltime(3)の挙動に依存します. >同じ時間でもシステムがうるう秒を意識するかどうかで異なる結果になるかも >しれません. たしかに、time() はなんの頓着もせず時を刻み、解釈があるのはlocaltime() なんですが、「同じ時間」でも異なる可能性があるのは、むしろ time() ほう だといえると思います。とりあえず、「同じ Time オブジクト」とすれば判る ような気がします。それは同じ時間とは違うようです。で、そういう説明をし たかったのかどうか、ちょっと自信ないので、そのままです。 あと、細かなことがいろいろ (あまりオススメできないかもしれない)。 # できればタグは大文字か小文字か、どちらかに揃えたいところでした。 --Tadayoshi Funaba ----Next_Part(Fri_Oct_23_09:10:48_1998_81)-- Content-Type: Text/Plain; charset=iso-2022-jp Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=Time.html.patch --- Time.html.orig Wed Oct 21 18:51:47 1998 +++ Time.html Fri Oct 23 08:58:10 1998 @@ -16,11 +16,16 @@

Time

-時間オブジェクト.Time.nowは現在の時刻を返しま -す.File#statの返 -すファイルのタイムスタンプはTimeオブジェクトで -す.Timeオブジェクトは時間を1970年1月1日 00:00:00 UTCからの -秒数で保持しています. +時間クラス.Time.nowは現在時刻を表わすTimeオブジェクトを返しま +す.また,File#statの返 +すファイルのタイムスタンプもTimeオブジェクトで +す. +

+

+Timeオブジェクトは時刻を起算時からの経過秒数で保持しています. +起算時は協定世界時(UTC,もしくはその旧称からGMTとも表記されます) +の1970年1月1日午前0時です. +なお,うるう秒を勘定するかどうかはシステムに依ります.

スーパークラス:

@@ -40,30 +45,29 @@ now

-現在のTimeオブジェクトを返します. +現在時刻のTimeオブジェクトを返します.

at(time)

-timeで指定した時間のTimeオブジェクト -を返します.timeはTimeオブジェクトか -整数であり,整数の場合は1970年1月1日 00:00:00 UTC -からの秒数とみなします. +timeで指定した時刻のTimeオブジェクト +を返します.timeはTimeオブジェクト, +もしく起算時からの経過秒数を表わす整数か浮動小数点数です.

gm(year, month, day, hour, min, sec)

-引数で指定したGMT時刻のTimeオブジェクトを返しま +引数で指定した協定世界時のTimeオブジェクトを返しま す.第2引数以降は省略可能で,省略した場合の値はその引数がと り得る最小の値です.

monthは1(1月)から12(12月)の範囲の整数または英語の -月名または1から12の数の文字列で指定します. +月名,または1から12までの数を表わす文字列で指定します.

引数の数がTime#to_aと全く同じ場合(こちら @@ -76,17 +80,17 @@ mktime(year, month, day, hour, min, sec)

-引数で指定したローカル時刻のTimeオブジェクトを返しま -す.第2引数以降は省略可能で,省略した場合の値はその引数がと -り得る最小の値です. +引数で指定した地方時のTimeオブジェクトを返しま +す.引数の扱いはgmと同じです.

times

-現在のプロセスとその子プロセスが消費したユーザ/システムCPUタ -イムの積算を構造体として返します. +自身のプロセスとその子プロセスが消費したユーザ/システムCPU +時間の積算を構造体として返します. +

 utime		# user time
@@ -107,14 +111,14 @@
 
self + other

-selfよりotherだけ後の時間を返します. +selfよりotherだけ後の時刻を返します.

self - other

otherがTimeオブジェクトである時,二 -つの時間の差を実数で返します.otherが数値である時 -にはselfよりotherだけ前の時間を返しま +つの時刻の差を実数で返します.otherが数値である時 +にはselfよりotherだけ前の時刻を返しま す.

@@ -122,9 +126,9 @@ self <=> other

-時間の比較.otherはTimeオブジェクト -か整数でなければなりません.整数の場合は00:00:00 GMT, January 1, 1970 -からの秒数とみなして比較します. +時刻の比較.otherはTimeオブジェクト +か数値でなければなりません.数値の場合は起算時 +からの経過秒数とみなして比較します.

@@ -133,6 +137,10 @@
ctime
+

+時刻を`asctime(3)'の形式の文字列に変換します. +

+
to_s
@@ -144,15 +152,15 @@ gmtime

-タイムゾーンをUTC(GMT)に設定します.このメソッドを受けとった -Timeクラスのインスタンスは,以後の時刻変換をGMT -で行ないます.UTC時刻を表示するためには以下のようにします. +タイムゾーンを協定世界時に設定します. +このメソッドを呼び出した後は時刻変換を協定世界時として行ないます. +協定世界時を表示するためには以下のようにします. +

 print Time.now.gmtime, "\n"
 
-

gmtimeは自分自身を返します.

@@ -161,11 +169,11 @@ localtime

-タイムゾーンをローカルタイムに設定します(デフォルト). +タイムゾーンを地方時に設定します(デフォルト).

localtime(gmtimeも)の挙動はシステ -ムのlocaltime(3)の挙動に依存します.同じ時間でもシステムがう +ムのlocaltime(3)の挙動に依存します.同し時刻でもシステムがう るう秒を意識するかどうかで異なる結果になるかもしれません.

@@ -175,8 +183,7 @@
tv_sec

-00:00:00 GMT, January 1, 1970から時刻までの秒数 -を整数で返します. +起算時からの経過秒数を整数で返します.

@@ -223,8 +230,8 @@ 参照)

-注意: 生のtm構造体とは異なり,monthは1月に対して1を返し, -1998年に対して1998を返します. +注意: 生のtm構造体とは異なり,monthは1月に対して1を返し, +yearは1998年に対して1998を返します.

@@ -246,7 +253,7 @@
%b
月の省略名(Jan, Feb...)
%c -
時刻表現(c.f. ctime(3)) +
時刻表現(参照 ctime(3))
%d
日(01-31)
%H @@ -262,7 +269,7 @@
%p
午前または午後(AM,PM)
%S -
秒(00-61) +
秒(00-60)
%U
週を表す数.最初の日曜日が第1週の始まり(00-53)
%W @@ -309,8 +316,8 @@ to_f

-00:00:00 GMT, January 1, 1970から時刻までの秒数 -を浮動小数点数で返します.秒以下のデータも含みます. +起算時からの経過秒数を浮動小数点数で返します. +1秒に満たない経過も表現されます.

@@ -320,7 +327,7 @@ tv_usec

-時刻のmicro secondの部分を返します. +時刻のマイクロ秒の部分を返します.

----Next_Part(Fri_Oct_23_09:10:48_1998_81)----