[#38121] regex performace tuning and ABI compatibility — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
Yuguiです。
なかだです。
なかだです。
[#38131] Bug when daemonizing — rubikitch@...
るびきちです。
[#38145] MSの方との相談に先立って — masayoshi takahashi <maki@...>
高橋征義です。どこに投げるのがベストか判断つかなかったので、
[#38153] [feature:trunk] warning when Kernel#p is used — Yusuke ENDOH <mame@...>
遠藤です。
[#38191] big time — Tanaka Akira <akr@...>
思い立って、time_t を越える範囲を Time で扱うことに挑戦して
まつもと ゆきひろです
> 思い立って、time_t を越える範囲を Time で扱うことに挑戦して
In article <20090328.134401.209982445.tadf@dotrb.org>,
卜部です。
In article <49CF6641.7010204@ruby-lang.org>,
Tanaka Akira さんは書きました:
In article <49D07B1B.7000602@ruby-lang.org>,
卜部です。
In article <49D0E3D1.5020206@ruby-lang.org>,
Tanaka Akira さんは書きました:
In article <49D33295.3000600@ruby-lang.org>,
卜部です。
In article <49D39822.6070505@ruby-lang.org>,
[#38218] rinda/eval.rb — Masatoshi SEKI <m_seki@...>
咳といいます。
In article <F01982B3-FBB5-497F-BA36-38FA250E7D69@mva.biglobe.ne.jp>,
咳といいます。
こんにちは、なかむら(う)です。
In article <20090401095853.B00A.C613B076@garbagecollect.jp>,
まつもと ゆきひろです
こんにちは、なかむら(う)です。
[#38222] *BSD で fork できない理由 — "KISHIMOTO, Makoto" <ksmakoto@...4u.or.jp>
きしもとです
At Tue, 31 Mar 2009 18:48:46 +0900,
卜部です。
In article <49D308AD.4040303@ruby-lang.org>,
Tanaka Akira さんは書きました:
きしもとです
[ruby-dev:38206] Re: big time
成瀬です。
Tanaka Akira wrote:
> In article <49CDF29D.3010302@airemix.jp>,
> "NARUSE, Yui" <naruse@airemix.jp> writes:
>
>> これはDateTime#next_dayのようなものを追加するのはどうでしょう。
>
> まぁ、考えなくもないのですが、いつもそれは
>
> * 24時間後
>
> * 次の日の同じ時刻
>
> のどちらなのか、
とりあえず長いものの様子を見てみると、
PostgreSQLは24時間後 (24*60*60秒後) ですね。
なお、閏秒だと24時間後が同じ日になりうるんですが、
以下のように閏秒を次の日の00秒を2回という方法で実装していました。
まぁ、同じ日だったらもう1秒加えるのが正解な気がしますけど。
postgres=# SELECT ((timestamp '1972-06-30 23:59:59' AT TIME ZONE 'right/UTC' + INTERVAL '0 year 0 seconds') AT TIME ZONE 'right/UTC');
timezone
---------------------
1972-06-30 23:59:59
(1 row)
postgres=# SELECT ((timestamp '1972-06-30 23:59:59' AT TIME ZONE 'right/UTC' + INTERVAL '0 year 1 seconds') AT TIME ZONE 'right/UTC');
timezone
---------------------
1972-07-01 00:00:00
(1 row)
postgres=# SELECT ((timestamp '1972-06-30 23:59:59' AT TIME ZONE 'right/UTC' + INTERVAL '0 year 2 seconds') AT TIME ZONE 'right/UTC');
timezone
---------------------
1972-07-01 00:00:00
(1 row)
また、XML Schemaを見ると一応1日後になっているのですが、
http://www.w3.org/TR/xmlschema-2/#adding-durations-to-dateTimes
http://www.w3.org/TR/xmlschema11-2/#d0e29708
内部処理はUTC or local (というかタイムゾーン不定というべきか)でかつ、
閏秒は処理系依存(1.1では無視と規定)という仕様なので、
24時間後と変わりませんね。
なお、みんな大好きActiveSupportももちろん24*60*60秒後で、
閏秒には非対応に見えます。
ところで、ふと気づいたのですが、今のパッチだと
> Time.utc(-1,1,1,0,0,0)+60*60*24*(365+58)
=> 0-02-28 00:00:00 UTC
> Time.utc(-1,1,1,0,0,0)+60*60*24*(365+59)
=> 0-03-01 00:00:00 UTC
こうなるんですが、0年(=BC 1年)って閏年じゃないですかね。
原因は、必要以上に1900を加えている部分があるからのようです。
--
NARUSE, Yui <naruse@airemix.jp>