D.getTime()/1E3-919179540)%2551442)/86400)+.4 D.getTime()/1E3により1970年からブラウザ読み込み時までの秒数を測り、 1970年1月1日0時から1999年2月16日15時39分の朔時のを引き、 その引いた値を平均朔望月の秒数で割り、日数換算したものに、 調整数0.4を加えたものです。 考え方は月齢0を出発点として、月は平均朔望月により真円を描くものと仮定した 計算で誤差が出ます。 1999年2月16日15時39分以降でないと使えません |
D.getTime()/1E3-929332980)%2551442)/86400)+.4 考えは同上。1999年6月14日4時3分の月齢0を基準にしました。(KODAさんにご協力いただきました) これにより誤差が0.6日と少なくなりました。 平均値と軌道の偏差が0.6なので、この式の考えではこれ以上の精度は出ないです。 1999年6月14日4時3分以降でないと使えません |
(350.737486+444960*T+307.114217*T-1.436E3*T*T)%360*29.4/360 1900年分点による太陽と月の離角からの簡易計算。 1900年以降でないと使えません |
ユリウス日から直前の新月のユリウス日を差し引く計算。 月と太陽の黄経が一致した瞬間を新月としており、計算誤差は 差は、1月や6月が差が小さく、3月や9月が最大となります。 総じては月齢に±0.1程度の差で求められます。 この式はKODAさんと福原直人さんに教えていただきました。 |
D.getTime() |
D=new Date()により日にちを扱う宣言をし、その値は「D」にします。 D.getTime()により1970年から何年経ったか、ブラウザはシステム時計を調べ 1/1000秒単位で答えが返ってきます。 |
E |
10の何乗かを表します。早い話が0が幾つつくかです。 2E6なら2百万で、2E-6なら0.000002のことです。 |
MA | 月齢つまりMoon Ageの頭文字です。 |
T | ユリウス世紀つまり36525日で「1」となります。 |
その他の数字 |
え〜ま〜オマジナイであると思ってください(^^;
「.4」平均より0.4ずれているらしく、私の経験測です。 |