[#6862] Re: http_get.rb — 青山 和光 <PXN11625@...>

In-Reply-To: [ruby-list:6844] Re: http_get.rb

15 messages 1998/03/01

[#6906] ruby's Icon ? — 藤本尚邦 / FUJIMOTO Hisakuni <hisa@...>

藤本です、こんにちは。

25 messages 1998/03/03
[#6907] Re: ruby's Icon ? — matz@... (Yukihiro Matsumoto) 1998/03/03

まつもと ゆきひろです

[#6908] Re: ruby's Icon ? — 藤本尚邦 / FUJIMOTO Hisakuni <hisa@...> 1998/03/03

藤本です、こんにちは。

[#6911] Re: ruby's Icon ? — OZAWA Sakuro <ozawa@...> 1998/03/03

小澤さくです。

[#6912] Re: ruby's Icon ? — 藤本尚邦 / FUJIMOTO Hisakuni <hisa@...> 1998/03/03

藤本です、こんにちは。

[#6914] Re: ruby's Icon ? — 藤本尚邦 / FUJIMOTO Hisakuni <hisa@...> 1998/03/03

藤本です、こんばんは。

[#6918] manual 1.18b index — WATANABE Tetsuya <tetsu@...>

ruby-man-1.1b8 で、name タグがついているものを拾い集めて

17 messages 1998/03/04
[#6921] Re: manual 1.18b index — matz@... (Yukihiro Matsumoto) 1998/03/04

まつもと ゆきひろです

[#6954] Re: ruby's Icon ? — nosuzuki@... (Norio Suzuki)

こんばんは。鈴木教郎です。

18 messages 1998/03/04
[#6964] Re: ruby's Icon ? — matz@... (Yukihiro Matsumoto) 1998/03/05

まつもと ゆきひろです

[#7023] infinity — Tadayoshi Funaba <tadf@...>

ふなばです。

41 messages 1998/03/09
[#7029] Re: infinity — shugo@... (Shugo Maeda) 1998/03/09

前田です。

[#7033] Re: infinity — keiju@... (石塚圭樹 ) 1998/03/09

けいじゅ@日本ラショナルソフトウェアです.

[#7041] Re: infinity — Kazuhisa YANAGAWA <katze@...> 1998/03/10

In message <199803091741.CAA05774.keiju@cupmail0.rational.com>

[#7048] Re: infinity — keiju@... (Keiju ISHITSUKA) 1998/03/10

けいじゅ@日本ラショナルソフトウェアです.

[#7049] Re: infinity — matz@... (Yukihiro Matsumoto) 1998/03/10

まつもと ゆきひろです

[#7051] Re: infinity — keiju@... (石塚圭樹 ) 1998/03/10

けいじゅ@日本ラショナルソフトウェアです.

[#7054] Re: infinity — matz@... (Yukihiro Matsumoto) 1998/03/10

まつもと ゆきひろです

[#7050] Re: infinity — Kazuhisa YANAGAWA <katze@...> 1998/03/10

In message <199803100359.MAA08628.keiju@cupmail0.rational.com>

[#7259] Socket#shutdown — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

16 messages 1998/03/28
[#7260] Re: Socket#shutdown — matz@... (Yukihiro Matsumoto) 1998/03/28

まつもと ゆきひろです

[#7265] Re: Socket#shutdown — keiju@... (石塚圭樹 ) 1998/03/29

けいじゅ@日本ラショナルソフトウェアです.

[ruby-list:6889] lib/date.rb

From: Tadayoshi Funaba <tadf@...>
Date: 1998-03-02 10:47:09 UTC
List: ruby-list #6889
ふなばです。

ダテクラスを書いていて、あらためて気がついた lib/date.rb の疑問点です。

`-' で period が <= 0 にならないようにチェックしていますが、`-' で必要な
らば、`+' でも必要なはずだと思います (増加するばかりとは限らない)。

ダテクラスのテストのついでに、lib/date.rb のテストもしてみました。
lib/date.rb は暦計算を間違えることがあります。1601年1月1日から2000年12月
31日まで (146097日) 日付の対応を確認したところ、そのうちの7867日で誤りが
みつかりました。

require 'date'
x = Date.new(1752, 12, 31)
x += 1
puts x # => "Fri, Jan  1 1753"
x -= 1
puts x # => "Mon, Jan 11 1753"

これは `-' がよくないわけではなくて、暦計算そのものがよくないわけです。

で、あまり自信がないのですが、ちょろっと手を入れてみました。一応、これ
でうまくいっているようです。でも、本当に確かなのか、わかりませんから、
信用しないでください。

--- date.rb.orig	Wed Feb 18 11:31:19 1998
+++ date.rb	Mon Mar  2 19:11:47 1998
@@ -109,6 +109,9 @@
     else
       raise TypeError, "Illegal type. (Integer or Date)"
     end
+    if d <= 0
+      raise ArgumentError, "argument out of range. (self > other)"
+    end
     return Date.at(d)
   end
   
@@ -146,11 +149,7 @@
   end
   
   def leapyear?
-    if Date.leapyear(@year) == 1
-      return FALSE
-    else
-      return TRUE
-    end
+    Date.leapyear(@year) != 1
   end
 
   def _check_date
@@ -221,10 +220,10 @@
     p += dl[mm]
   end
   p += (y - 1) * 365 + ((y - 1) / 4.0).to_i
-  if (y - 1) > 1752
-    p -= ((y - 1 - 1752) / 100.0).to_i
-    p += ((y - 1 - 1752) / 400.0).to_i
-    p -= (14 - 3)
+  if y > 1752
+    p -= ((y - 1) / 100.0).to_i
+    p += ((y - 1) / 400.0).to_i
+    p += 2
   elsif y == 1752 && m == 9 && d >= 14 && d <= 30
     p -= (14 - 3)
   end

#ついでですが、マニュアルの Time#gm で month の記述が修正されていないよう
#です。

--Tadayoshi Funaba

In This Thread

Prev Next