早朝4時に「破水したかも」と起こされる。 さっそく妻を病院につれていく。
玄関を出たら、ちょうど正面に満月が輝いていた。
妻を病院に送っていって、pomで調べると
matz@x31[~] pom 2004102804 Thu 2004 Oct 28 04:00:00 (JST): The Moon was Full
だそうだ。そういえば、「出産は満月に多い」と聞いたことがある。
うちの子で調べてみると、長女は新月(5% full)だったが、次女はほぼ満月(98% full)、 長男はちょっと足りない(67% full)だった。サンプル数が少なすぎるが、 なんとなく満月に近い傾向はあるような気がする。
pomはThe Epoch(1970-01-01 00:00 UTC)以前は計算できないようで、 自分の産まれた時は計算できなかった。年寄り。
後でアルゴリズムを調べてRubyで計算してみよう。
追記
pomのソースをベースにハックしてみた。
# Copyright (c) 1989, 1993
# The Regents of the University of California. All rights reserved.
require 'time'
EPOCH_MINUS_1970=(20 * 365 + 5 - 1) # 20 years, 5 leaps, back 1 day to Jan 0
EPSILONg=279.403303 # solar ecliptic long at EPOCH
RHOg=282.768422 # solar ecliptic long of perigee at EPOCH
ECCEN=0.016713 # solar orbit eccentricity
LZERO=318.351648 # lunar mean long at EPOCH
Pzero=36.340410 # lunar mean long of perigee at EPOCH
Nzero=318.510107 # lunar mean long of node at EPOCH
include Math
def potm(days)
n = 360 * days / 365.242191
n = adj360(n)
msol = n + EPSILONg - RHOg
msol = adj360(msol)
ec = 360 / PI * ECCEN * sin(dtor(msol))
lambdasol = n + ec + EPSILONg
lambdasol = adj360(lambdasol)
l = 13.1763966 * days + LZERO
l = adj360(l);
mm = l - (0.1114041 * days) - Pzero
mm = adj360(mm);
nm = Nzero - (0.0529539 * days)
nm = adj360(nm);
ev = 1.2739 * sin(dtor(2*(l - lambdasol) - mm))
ac = 0.1858 * sin(dtor(msol))
a3 = 0.37 * sin(dtor(msol))
mmprime = mm + ev - ac - a3
ec = 6.2886 * sin(dtor(mmprime))
a4 = 0.214 * sin(dtor(2 * mmprime))
lprime = l + ev + ec - ac + a4
v = 0.6583 * sin(dtor(2 * (lprime - lambdasol)))
ldprime = lprime + v
d = ldprime - lambdasol
return(50.0 * (1 - cos(dtor(d))))
end
def dtor(deg)
deg * Math::PI / 180
end
def adj360(deg)
loop do
if (deg < 0)
deg += 360;
elsif (deg > 360)
deg -= 360;
else
return deg
end
end
end
tmpt = (ARGV[0] ? Time.parse(ARGV[0]) : Time.now).to_i
days = (tmpt - EPOCH_MINUS_1970 * 86400) / 86400.0
printf "%1.0f%% full\n", potm(days) + 0.5
これによると私の誕生日は94% full、妻の誕生日は32% fullのようだ。 もうちょっとサンプルを取らないと本当に多いかどうかは断定できないが、 6人中3人が満月近くというのは結構偏っている印象がある。
追記
多いのは大潮の時だそうだ。 大潮だと新月の時も含むからうちの場合4/6になる。 日記巡回してみても確かにそんな感じだな。
追記
ライセンス表示が抜けていた。Ruby版もBSDライセンスに従う。 pom.cにはオリジナルBSDが記述されていたが、修正BSDライセンスを適用してかまわない。
15時42分に産まれました。女の子。2826g。 母子ともに健康そうです。