なかだです。

At Sun, 17 Mar 2002 01:30:01 +0900,
Take_tk wrote:
>   中田さんが言っていたZellerの公式というのはこれかな?。
> 
> def leap_year?( year )
>   ( year % 4 == 0 )&&(( year % 100 != 0 )||( year % 400 == 0 ))
> end

それも含まれますが、Zellerの公式というのはもともとは曜日を調べ
るための式です。で、その一部が年月から日数を計算するのに応用で
きるんです。

def zeller(y, m, d)
  if (m -= 3) < 0
    y -= 1
    m += 12
  end
  (y + y / 4 - y / 100 + y / 400 + (m * 13 + 2) / 5 + d + 2) % 7
end

ローマ時代には一年が三月から始まっていて、五ヶ月単位で31日30日
31日30日31日と交互に繰り返すことを利用する式です。なので、二月
以外の日数を求める式はこうなります。

  30 + ((m + 9) % 12 % 5 + 1) % 2

テーブルを使ったほうが速いんで、メリットないですが。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦