太陽、地球、月、の3天体が一直線上にあり、月が地球の影にはいってみえなくなる現象を、月食という。満月のときにのみ起きる。

月食の回数は日食より少ないが、一地点で見える回数は月食のほうが多い。満月のたびに月食が起きないのは、月の軌道面と地球の軌道面が若干傾いているためで、最大年3回しか起きないそうだ。

本プログラムは月食の時刻を教えてくれるもの。果たしてうまくいくか、実際にその日にならないと判らないかな。

<プログラム本体>
lunarEclipse.c —- 最大月食の時刻計算

<入力>
求めたい年(西暦年)

<出力>
計算した、最大月食の時刻表示(分まで)

実行例

<注意事項>
関数 solarPos()太陽の位置計算)、および、関数 lunarPos()月の位置計算) が必要。
また、関数 ut2jd()ユリウス日への換算)、jd2ut()ユリウス日からの換算)も必要。

<説明>
年の365(または366)日に対し、太陽と月の黄径をそれぞれ計算し、その差が180度にもっとも近く、さらに、月の黄緯が0に近い時刻、を求める。
なお、日付は日本標準時に修正してある。海外では1日ずれることもある。

月食時刻
2000年 1月21日 13時42分
7月16日 22時57分
2001年 1月10日  5時26分
7月 6日  0時 6分
2003年 5月16日 12時37分
11月 9日 10時16分
2004年 5月 5日  5時35分
10月28日 12時10分
2005年10月17日 16時14分
2006年 3月15日 13時36分
9月 8日  8時 7分
2007年 3月 4日  8時18分
8月28日 19時37分
2008年 2月21日 12時31分
8月17日  6時18分
2010年 6月26日 20時31分
12月21日 17時14分

Comments are closed.

Post Navigation