[#11952] NORETURN — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

24 messages 2001/01/10
[#11956] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11957] Re: NORETURN — matz@... (Yukihiro Matsumoto) 2001/01/10

まつもと ゆきひろです

[#11958] Re: NORETURN — WATANABE Hirofumi <eban@...> 2001/01/10

わたなべです.

[#11959] CVS branches (Re: Re: NORETURN) — matz@... (Yukihiro Matsumoto) 2001/01/10

[#12087] string#index, gsub, []= のバグ? — Beyond <beyond@...>

18 messages 2001/01/27
[#12091] Re: string#index, gsub, []= のバグ? — matz@... (Yukihiro Matsumoto) 2001/01/27

まつもと ゆきひろです

[ruby-dev:12034] date/parsedate

From: Tadayoshi Funaba <tadf@...>
Date: 2001-01-18 03:37:18 UTC
List: ruby-dev #12034
ふなばです。

date で、new が負の日をとった場合の検査が甘かったので直しました。
parsedate で、12時間制表現が正しく解釈されない場合があったので直しまし
た。


--- date.rb	Mon Dec 25 10:05:07 2000
+++ date2.rb.new	Thu Jan 18 12:09:52 2001
@@ -1,3 +1,3 @@
-# date.rb: Written by Tadayoshi Funaba 1998-2000
-# $Id: date.rb,v 1.22 2000-07-16 10:23:40+09 tadf Exp $
+# date2.rb: Written by Tadayoshi Funaba 1998-2001
+# $Id: date2.rb,v 1.23 2001-01-18 12:09:47+09 tadf Exp $
 
@@ -130,12 +130,11 @@
 	ny, nm = clfloor(y * 12 + m, 12)
-	nm,    = clfloor(m + 1, 1)
-	la = nil
-	31.downto 1 do |z|
-	  break if la = exist3?(y, m, z, sg)
-	end
-	ns = ns?(la, sg)
-	d = jd_to_civil(civil_to_jd(ny, nm, 1, ns) + d, ns)[-1]
+	nm,    = clfloor(nm + 1, 1)
+	jd = civil_to_jd(ny, nm, d + 1, sg)
+	ns = ns?(jd, sg)
+	return unless [y, m] == jd_to_civil(jd, sg)[0..1]
+	return unless [ny, nm, 1] == jd_to_civil(jd - d, ns)
+      else
+	jd = civil_to_jd(y, m, d, sg)
+	return unless [y, m, d] == jd_to_civil(jd, sg)
       end
-      jd = civil_to_jd(y, m, d, sg)
-      return unless [y, m, d] == jd_to_civil(jd, sg)
       jd
@@ -156,12 +155,11 @@
       if d < 0
-	ny = y + 1
-	la = nil
-	366.downto 1 do |z|
-	  break if la = exist2?(y, z, sg)
-	end
-	ns = ns?(la, sg)
-	d = jd_to_ordinal(ordinal_to_jd(ny, 1, ns) + d, ns)[-1]
+	ny, = clfloor(y + 1, 1)
+	jd = ordinal_to_jd(ny, d + 1, sg)
+	ns = ns?(jd, sg)
+	return unless [y] == jd_to_ordinal(jd, sg)[0..0]
+	return unless [ny, 1] == jd_to_ordinal(jd - d, ns)
+      else
+	jd = ordinal_to_jd(y, d, sg)
+	return unless [y, d] == jd_to_ordinal(jd, sg)
       end
-      jd = ordinal_to_jd(y, d, sg)
-      return unless [y, d] == jd_to_ordinal(jd, sg)
       jd


ふなば ただよし

In This Thread

Prev Next