lunar -- ´ÞÀÇ À§Ä¡, À½¾ç·Âº¯È¯ ¹× º°ÀÚ¸®, ÀÏ¿ù½Ä °è»ê
¼Ò½º´Ý±â | 24Àý±â °è»ê | À½¾ç·Âº¯È, º°ÀÚ¸®, ÀÏ¿ù½Ä °è»ê | ¸Þ½Ã¿¡ °üÃøÁ¤º¸(½Ç½Ã°£) | ¸Þ½Ã¿¡ °üÃøÁ¤º¸(¿À´ÃÀüü) | deltaT °è»ê | ºÎÈ°Àý ³¯Â¥ °è»ê
<?php
function simple_astro($y, $m, $d, $_location) // solar
{
list($lymd,$info) = lunar::tolunar($y,$m,$d); // lunar
$lage = $info[5];
list($offical,$civil,$nautical,$astronomical,$moreinfo) = solar::sunrise_sunset($y,$m,$d,$_location); // all
return array($lymd,$lage,$offical,$civil,$nautical,$astronomical);
}
function get_solarename($str)
{
$solarename = array ('N'=>'¾øÀ½', 'A'=>'±Ýȯ', 'T'=>'°³±â', 'H'=>'Hybird', 'P'=>'ºÎºÐ');
$name = $solarename[$str[0]];
$size = strlen($str);
for($i=1; $i<$size; $i++)
{
$name .= ', or '.$solarename[$str[$i]];
}
if(!$name) $name = '¾øÀ½'; // recheck in lunar info
return 'ÀϽÄ('.$name.')';
}
function get_lunarename($str)
{
$lunarename = array ('N'=>'¾øÀ½', 't'=>'°³±â', 'p'=>'ºÎºÐ', 'n'=>'¹Ý¿µ');
$name = $lunarename[$str[0]];
$size = strlen($str);
for($i=1; $i<$size; $i++)
{
$name .= ', or '.$lunarename[$str[$i]];
}
if(!$name) $name = '¾øÀ½'; // recheck in solar info
return '¿ù½Ä('.$name.')';
}
require_once '_lib/class.calendar.php';
require_once '_lib/class.solar.php';
require_once '_lib/class.lunar.php';
require_once '_lib/func.debug.php';
require_once 'class.moonrise.php'; // new class
$_self = basename($_SERVER['SCRIPT_NAME']);
$title = 'lunar -- ´ÞÀÇ À§Ä¡, À½¾ç·Âº¯È¯ ¹× º°ÀÚ¸®, ÀÏ¿ù½Ä °è»ê';
echo <<<___END
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>$title</TITLE><P><H2>$title</H2>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<SCRIPT LANGUAGE="JavaScript" type="text/JavaScript">
<!--
var starttime = (new Date()).getTime();
//-->
</SCRIPT>
<STYLE TYPE="text/css">
<!--
* { font-family:NanumGothic,'³ª´®°íµñ','Malgun Gothic',Dotum,'µ¸¿ò',Gulim,'±¼¸²',Helvetica,Apple-Gothic; }
body, td { font-size:10pt; }
td { font-family:Helvetica; }
table { background-color:#bbbbbb; } /* border:1px solid #cccccc; */
tr { background-color:#ffffff; }
.bb { background-color:dodgerblue; }
.dayyear { background-color:#c9d8ff; }
.pre { font-family:Dotumche,Helvetica; white-space: pre; }
.small { Helvetica; white-space: pre; font-size:9pt; }
-->
</STYLE>
</HEAD>
<BODY>\n
___END;
$_menuindex = array
(
'solar.php' => '24Àý±â °è»ê',
'lunar.php' => 'À½¾ç·Âº¯È, º°ÀÚ¸®, ÀÏ¿ù½Ä °è»ê',
'messier.php' => '¸Þ½Ã¿¡ °üÃøÁ¤º¸(½Ç½Ã°£)',
'messier.today.php' => '¸Þ½Ã¿¡ °üÃøÁ¤º¸(¿À´ÃÀüü)',
'deltat.php' => 'deltaT °è»ê',
'easter.php' => 'ºÎÈ°Àý ³¯Â¥ °è»ê'
);
$menu = '';
foreach($_menuindex AS $k=>$v) $menu .= " | <A HREF='$k'>$v</A>";
if($_GET['view'])
{
echo '<A HREF="'.$_self.'">¼Ò½º´Ý±â</A>'.$menu.'<HR>'."\n";
highlight_file(basename($_self));
return;
}
//echo date('Z T').' ---- ';
if($_POST)
{
flush();
$_p = $_POST['_p'];
$_l = $_POST['_l'];
$_checkedm[$_l['m']] = 'CHECKED';
$_checkedl[$_l['l']] = 'CHECKED';
$_time = calendar::_mktime(21,0,0,(int)$_p['m'],(int)$_p['d'],(int)$_p['y']); // local time 21:00 (UTC 12:00)
$_location = (int)$_POST['_location'];;
$_selected[$_location] = 'SELECTED';
}
else
{
$_time = mktime(21,0,0); // local time 21:00 (UTC 12:00)
$_location = 0;
}
$_w = array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
$_locations = array('¼¿ï½Ã','µ¶µµ(µ¿µµ)','Æ÷Ç×(°æºÏ)','¾È¸é(Ãæ³²)');
// rewrite
list($ymd,$_p['y'],$_p['m'],$_p['d'],$w) = explode(' ',calendar::_date('Y-m-d Y n j w',$_time));
if($_l['m']) // ÀԷ°ªÀÌ À½·ÂÀÏ °æ¿ì
{
list($ymd,$ck,$y,$m,$d,$w) = lunar::tosolar($_p['y'],$_p['m'],$_p['d'],$_l['l']);
if(!$ck) $_err = '<FONT COLOR=#FF0000>input date --> invalid date</FONT>';
$_time = calendar::_mktime(21,0,0,$m,$d,$y); // overwrite, local time 21:00 (UTC 12:00)
} else
{
$y = $_p['y'];
$m = $_p['m'];
$d = $_p['d'];
}
//print_r(date('Y m d w l W',$_time));
//echo "$y $m $d ";
list($_ymd,$_info,$s,$f,$n) = $lunar = lunar::tolunar($y,$m,$d);
list($_y,$_m,$_d,$_l,$_t,$_a,$_e) = $_info; // À½·Â ³¯Â¥
//_print_r($lunar);
$_ly = $_y;
$_lm = $_m + 1; // À½·Â, ´ÙÀ½ ´Þ ÇÕ»èÀÏ
if($_lm > 12) { $_lm -= 12; $_ly++; }
/***
echo '<pre>';
echo 'calendar::_getjd ';
print_r(calendar::_getjd(-4712,1,1,21,0,0))."\n";
echo 'calendar::mkjd '.calendar::mkjd(21,0,0,1,1,-4712)."\n";
echo '_solar::_getjd ';
print_r(lunar::_getjd(calendar::_mktime(21,0,0,1,1,-4712)))."\n";
***/
## BC patch
##
//$_fymd = explode(' ',calendar::_date('Y n d',$f[2])); // BC(-year) bug patch
$_fymd = explode('-',$f[0]);
if($_fymd[3]) { array_shift($_fymd); $_fymd[0] *= -1; }
list($_lf) = lunar::tolunar($_fymd[0],$_fymd[1],$_fymd[2]); // À̹ø´Þ ¸Á½Ã°¢ÀÏ(À½·Â)
$_ls = sprintf('%d-%02d-%02d',$_y,$_m,1); // À̹ø´Þ ÇÕ»èÀÏ(À½·Â)
$_ln = sprintf('%d-%02d-%02d',$_ly,$_lm,1); // ´ÙÀ½´Þ ÇÕ»èÀÏ(À½·Â)
$leap = $_l ? '<FONT COLOR=#FF0000>À±´Þ</FONT>' : 'Æò´Þ';
$w = $_w[$w]; // weekday
$e_c = get_solarename($_e).', '.get_lunarename($_e);
$e_s = get_solarename($s[3]);
$e_f = get_lunarename($f[3]);
$e_n = get_solarename($n[3]);
$_stime=calendar::_mktime(21,0,0,$m,$d,$y); // local time 21:00 (UTC 12:00)
$moon = lunar::moon($_stime);
$sun = solar::sun($_stime);
$zodiac = lunar::zodiac($y,$m,$d);
## ÀÏÃâ/Àϸô, ¹Ú¸í(twilight)
## http://www.kasi.re.kr/html/study/qna/?f=3&idx=19911
##
list($offical,$civil,$nautical,$astronomical,$moreinfo) = solar::sunrise_sunset($y,$m,$d,$_location); // all
$scul = $moreinfo[0]." ($moreinfo[3])";
## ¿ùÃâ¸ô
$mrst = moonrise::riseset($y,$m,$d,$_location,1); // ¿À´Ã(t)
$mrise= $mrst[1] ? $mrst[1] : $mrst[4];
$mset = $mrst[0] ? $mrst[0] : $mrst[3];
$mcul = $mrst[2]." ($mrst[5])"; // ³²Áß
echo '<A HREF="'.$_self.'?view=1">¼Ò½ºº¸±â</A>'.$menu.'<HR>'."\n";
echo <<<__END
<SCRIPT>
<!--
var year = 0;
function check_leap(obj)
{
var leap = obj.elements["_l[l]"].checked;
if(leap) obj.elements["_l[m]"].checked = true;
}
function check_lunar(obj)
{
var lunar = obj.elements["_l[m]"].checked;
if(!lunar) obj.elements["_l[l]"].checked = false;
}
//-->
</SCRIPT>
<PRE class=pre>
<H2>µ¥¸ð -- Å×½ºÆ®</H2>
- À¯È¿±â°£: ¾ç·Â 1902-01-10 - 2038-01-18
- À¯È¿±â°£: À½·Â 1901-12-01 - 2037-12-14
<FORM METHOD=post>
»ý³â¿ùÀÏ: <INPUT TYPE=text NAME='_p[y]' VALUE='$_p[y]' SIZE=5 MAXLENGTH=5
>³â <INPUT TYPE=text NAME='_p[m]' VALUE='$_p[m]' SIZE=2 MAXLENGTH=2
>¿ù <INPUT TYPE=text NAME='_p[d]' VALUE='$_p[d]' SIZE=2 MAXLENGTH=2
>ÀÏ»ý <INPUT TYPE=checkbox NAME='_l[m]' VALUE=1 $_checkedm[1] onClick='check_lunar(this.form)'
>À½·Â <INPUT TYPE=checkbox NAME='_l[l]' VALUE=1 $_checkedl[1] onClick='check_leap(this.form)'
>À±´Þ
ÀÏÃâÀϸô: <SELECT NAME='_location'>
<OPTION VALUE=0 $_selected[0]>$_locations[0]
<OPTION VALUE=1 $_selected[1]>$_locations[1]
<OPTION VALUE=2 $_selected[2]>$_locations[2]
<OPTION VALUE=3 $_selected[3]>$_locations[3]
</SELECT><BR>
<INPUT TYPE=submit VALUE=' °è»êÇϱâ(Submit) '
> <INPUT TYPE=button VALUE=' ÃʱâÈ(Reset) ' OnClick='location.href="$_self"'>
</FORM>
[°á°ú]
<FONT COLOR=#0000FF>
- ¾ç·Â: $ymd ($w) $_err
- À½·Â: $_ymd ($w) $leap ${_t}ÀÏ $_err
- Á¤º¸: ¿ù·É: ${_a}, $e_c
- À̹ø´Þ ÇÕ»è(ÃÊÇÏ·ç): $s[0] $s[1](¾ç·Â), ${_ls}(À½·Â) $e_s
- À̹ø´Þ ¸Á(À½·Âº¸¸§): $f[0] $f[1](¾ç·Â), ${_lf}(À½·Â) $e_f
- ´ÙÀ½´Þ ÇÕ»è(ÃÊÇÏ·ç): $n[0] $n[1](¾ç·Â), ${_ln}(À½·Â) $e_n
- ÀÏÃâÀϸô: $offical[0] / $offical[1] $_locations[$_location] ³²Áß $scul
- ¿ùÃâ¿ù¸ô: $mrise / $mset $_locations[$_location] ³²Áß $mcul
- ½Ã¹Î¹Ú¸í: $civil[0] / $civil[1] $_locations[$_location]
- Ç×Çعڸí: $nautical[0] / $nautical[1] $_locations[$_location]
- õ¹®¹Ú¸í: $astronomical[0] / $astronomical[1] $_locations[$_location]
- º°ÀÚ¸®: $zodiac[0], $zodiac[1]
</FONT><HR width=90% align=left>
__END;
print_r($moreinfo);
print_r($mrst);
$_today = sprintf('%04d%02d%02d',$y,$m,$d); // solar
$_tyear = $y;
$_pdtime = $_time; // print debug time
echo "<TABLE CELLPADDING=3 CELLSPACING=1 BORDER=0 WIDTH=860>\n";
echo "<TR><TD>³¯Â¥</TD><TD align=center>¿äÀÏ</TD><TD>À½·Â</TD><TD align=right class=small>¿ù·É(UTC 12:00)</TD>".
"<TD align=center>¿ùÃâ¸ô</TD><TD align=center>ÀÏÃâ¸ô</TD>".
"<TD align=center>½Ã¹Î¹Ú¸í</TD><TD align=center>õ¹®¹Ú¸í</TD><TD>Debug utime</TD></TR>\n";
for($i=-8; $i<=31; $i++)
{
$t = 86400 * $i;
list($ay,$am,$ad,$aw) = explode(' ',calendar::_date('Y m d D',$_pdtime+$t));
$class = ("$ay$am$ad" == $_today) ? 'class=dayyear' : '';
// À½·Â,¿ù·É,ÀÏÃâ¸ô,¹Ú¸í½Ã°£
$astro = simple_astro($ay,$am,$ad,$_location);
// ¿ùÃâ¸ô
$mrst = moonrise::riseset($ay,$am,$ad,$_location,1);
$mrise= $mrst[1] ? $mrst[1] : ($mrst[4] ? $mrst[4] : '---');
$mset = $mrst[0] ? $mrst[0] : ($mrst[3] ? $mrst[3] : '---');
echo "<TR $class>";
echo "<TD>$ay-$am-$ad</TD><TD align=center>$aw</TD><TD>$astro[0]</TD><TD align=right>$astro[1]</TD>".
"<TD align=center>$mrise / $mset</TD>".
'<TD align=center>'.$astro[2][0].' / '.$astro[2][1].'</TD>'.
'<TD align=center>'.$astro[3][0].' / '.$astro[3][1].'</TD>'.
'<TD align=center>'.$astro[5][0].' / '.$astro[5][1].'</TD>'.
'<TD class=small>'.calendar::_date('Y-m-d H:i:s',$_pdtime+$t).' '.($_pdtime+$t).'</TD>'. // debug
"\n</TR>\n";
}
echo "</TABLE><HR width=90% align=left>\n";
## find blue moon
##
$bluemoon = $solareclipse = array();
$_by = $y - 3; // start -3 year
$_bm = $m;
$_bd = 1;
for($i=0; $i<82; $i++)
{
list(,,$_bfirst,$_bmfull,$_bnext) = lunar::tolunar($_by,$_bm,$_bd);
list($_bmfully,$_bmfullm) = explode('-',$_bmfull[0]);
$tmp = sprintf('%04d%02d',$_bmfully,$_bmfullm);
$bluemoon[$tmp][] = array($_bmfull[0],$_bmfull[1],$_bmfull[3]);
list($_by,$_bm,$_bd) = explode('-',$_bnext[0]); // next
if($_bfirst[3] != 'N') $solareclipse[$tmp] = array($_bfirst[0],$_bfirst[1],$_bfirst[3]);
}
## print blue moon
##
echo <<<___END
<div class=pre>
--------------------------+----------------------------
Solar Eclipse | Lunar Eclipse
--------------------------+----------------------------
T - °³±âÀϽÄ(´ÞÀÇ º»¿µ) | t - °³±â¿ù½Ä(Áö±¸ÀÇ º»¿µ)
A - ±ÝȯÀϽÄ(´ÞÀÇ º»¿µ) |
H - Hybrid(±Ýȯ/°³±âÀϽÄ) |
P - ºÎºÐÀϽÄ(´ÞÀÇ ¹Ý¿µ) | p - ºÎºÐ¿ù½Ä(Áö±¸ÀÇ º»¿µ)
| n - ¹Ý¿µ½Ä(Áö±¸ÀÇ ¹Ý¿µ)
--------------------------+----------------------------
* ´ÞÀÌ Å¾çÀ» °ÉÃļ ±â³ª°¡´Â °æ¿ì ºÎºÐÀϽÄ(´ÞÀÇ ¹Ý¿µÀÌ Áö±¸¿¡ µµ´Þ)
* ´ÞÀÌ Áö±¸ ºÐ¿µ¿¡ °ÉÃļ Áö³ª°¡´Â °æ¿ì ºÎºÐ¿ù½Ä
* Penumbra: Áö±¸³ª ´ÞÀÇ ¹Ý¿µ(±×¸²ÀÚ)
* Umbra: Áö±¸³ª ´ÞÀÇ º»¿µ(±×¸²ÀÚ)
* Antumbra: ¹ÝÀ½¿µ, º»¿µÀÇ ¿ª±×¸²ÀÚ(?)
</div>
<TABLE CELLPADDING=3 CELLSPACING=1 BORDER=0 WIDTH=800>
<TR><TD COLSPAN=3>new moon</TD><TD COLSPAN=3>full moon</TD><TD COLSPAN=3 class=bb>2'nd full moon (blue moon)</TD></TR>
<TR>
<TD>date</TD><TD>time</TD><TD>eclipse</TD>
<TD>date</TD><TD>time</TD><TD>eclipse</TD>
<TD class=bb>date</TD><TD class=bb>time</TD><TD class=bb>eclipse</TD>
</TR>
___END;
foreach($bluemoon AS $k=>$arr)
{
$tr = $fr = $er = FALSE;
list($_pyear) = explode('-',$arr[0][0]);
$class = ($_tyear == $_pyear) ? 'class=dayyear' : '';
if($solareclipse[$k])
{
echo "<TR $class><TD>".$solareclipse[$k][0].'</TD><TD>'.$solareclipse[$k][1].'</TD><TD>'.$solareclipse[$k][2].'</TD>';
$tr = TRUE;
}
if($arr[0][2] != 'N')
{
if(!$tr) echo "<TR $class><TD>-</TD><TD>-</TD><TD>-</TD>";
echo '<TD>'.$arr[0][0].'</TD><TD>'.$arr[0][1].'</TD><TD>'.$arr[0][2].'</TD>';
$tr = $fr = TRUE;
}
if($arr[1])
{
if(!$tr) echo "<TR $class><TD>-</TD><TD>-</TD><TD>-</TD>";
if(!$fr) echo '<TD>'.$arr[0][0].'</TD><TD>'.$arr[0][1].'</TD><TD>-</TD>'; // first moon
$eclipse = ($arr[1][2]=='N') ? '-' : $arr[1][2];
echo '<TD>'.$arr[1][0].'</TD><TD>'.$arr[1][1].'</TD><TD>'.$eclipse.'</TD></TR>'."\n"; // blue moon
$tr = $fr = $er = TRUE;
}
if(!$tr) continue;
if(!$fr) echo '<TD>-</TD><TD>-</TD><TD>-</TD>';
if(!$er) echo '<TD>-</TD><TD>-</TD><TD>-</TD></TR>'."\n";
}
echo "</TABLE><HR width=90% align=left>\n";
//echo '<SPAN class=pre>'."\n";
echo 'test calendar::_mktime() to calendar::_date()'."\n";
echo '-4100-02-29 00:00:00 to '.calendar::_date('Y-m-d H:i:s',calendar::_mktime(0,0,0,2,29,-4100)).' '.calendar::_mktime(0,0,0,2,29,-4100) ."\n";
echo '-100-02-29 00:00:00 to '.calendar::_date('Y-m-d H:i:s',calendar::_mktime(0,0,0,2,29,-100))."\n";
echo '-111-02-29 00:00:00 to '.calendar::_date('Y-m-d H:i:s',calendar::_mktime(0,0,0,2,29,-111))."\n";
echo '0000-02-29 00:00:00 to '.calendar::_date('Y-m-d H:i:s',calendar::_mktime(0,0,0,2,29,0000))."\n";
echo '1000-02-29 00:00:00 to '.calendar::_date('Y-m-d H:i:s',calendar::_mktime(0,0,0,2,29,1000))."\n";
echo '2000-02-29 00:00:00 to '.calendar::_date('Y-m-d H:i:s',calendar::_mktime(0,0,0,2,29,2000))."\n";
echo '3000-02-29 00:00:00 to '.calendar::_date('Y-m-d H:i:s',calendar::_mktime(0,0,0,2,29,3000))."\n";
echo '2037-12-20-20 to '.calendar::_date('Y-m-d H:i:s',calendar::_mktime(0,0,0,12,20-20,2037))."\n";
//echo '</SPAN>'."\n";
//print_r($bluemoon);
echo "<BR>\n<H3>$ymd(À½.$_ymd) $w</H3>\n";
echo '<B>´ÞÀÇ À§Ä¡(12:00:00):</B>'."\n";
print_r($moon);
echo "\n\n";
echo '<B>žçÀÇ À§Ä¡(12:00:00):</B>'."\n";
print_r($sun);
echo "\n\n";
echo "<B>À½·Â °è»ê:</B> $_ymd\n";
print_r($lunar);
echo "\n\n";
echo "<B>º°ÀÚ¸®:</B>\n";
print_r($zodiac);
echo "<HR width=90% align=left>\n\n";
echo <<<__END
<PRE class=pre>
## lunar object -- get moon position or sun <-> moon, constellation, eclipses
##
## [author]
## - Chilbong Kim, <san2(at)linuxchannel.net>
## - http://linuxchannel.net/
##
## [changes]
## see http://ftp.linuxchannel.net/devel/php_lunar/
##
## [conjunction error by approximative method]
## - avg: -6538 seconds(+598 seconds, -11787 seconds)
##
## [conjunction error by approximative method day patch]
## - avg: -368 seconds(+592 seconds, -1081 seconds)
## - but, wrong day not exists :)
##
## [valid date]
## - solar : 1902-01-10 - 2038-01-18
## - lunar : 1901-12-01 - 2037-12-14
##
## [support date]
## - unix timestamp base: 1902-01-01 00:00:00 <= date <= 2037-12-31 23:59:59 (guess)
## - JD(Julian Day) base: BC 4713-01-01 12:00 GMT <= Gregorian date <= AD 9999 (guess)
##
## [download & online source view]
## - http://ftp.linuxchannel.net/devel/php_lunar/
## - http://ftp.linuxchannel.net/devel/php_calendar/
##
## [demo]
## - http://linuxchannel.net/gaggle/lunar.php
##
## [docs]
## - http://linuxchannel.net/docs/lunar.txt
##
## [study]
## - http://www.kao.re.kr/html/study/qna/index.html
## - http://sunearth.gsfc.nasa.gov/eclipse/SEsaros/SEsaros.html
## - Synodic Month (new moon to new moon) 29.53059 days = 29d 12h 44m (A)
## - Draconic Month (node to node) 27.21222 days = 27d 05h 06m (B)
## - Anomalistic Month (perigee to perigee) 27.55455 days = 27d 13h 19m
## - (223 * A) = 6585.36 days, (242 * B) = 6585.32 days
## - 1 Saros = 6585.32 days = 18 years 11 days 8 hours
##
## [eclipses]
## - Solar Eclipses: T(Total), A(Annular), H(Hybrid(Annular/Total)), P(Partial)
## - Lunar Eclipses: t(Total), p(Umbral(Partial)), n(Penumbral)
##
## [eclipses(e) by this program]
## - S A 104 0.010582273616323 1.06751983653440(1.067743)
## - S T 91 0.014674627401046 1.04166992331860
## - S H 6 0.210833791736160 0.96121766199154(0.964180)
## - S P 106 0.829402137331320 1.59530999819400
## - L t 114 0.010630181434784 0.52538271749109(0.527908)
## - L p 85 0.294681791935650 1.14183526374750
## - L n 111 0.832900661071600 1.57436507046800(1.578244)
##
## [reference]
## - http://user.chollian.net/~kimdbin/re/moonpos.html
## - http://zimmer.csufresno.edu/~fringwal/skycalc.c
## - http://williams.best.vwh.net/sunrise_sunset_example.htm
## - http://aa.usno.navy.mil/faq/docs/SunApprox.html
## - ftp://ssd.jpl.nasa.gov/pub/eph/export/C-versions/hoffman/
## - http://www.linuxchannel.net/docs/solar-24terms.txt
## - http://www.stjarnhimlen.se/english.html // good
## - http://www.stargazing.net/kepler/ // good
## - http://sunearth.gsfc.nasa.gov/eclipse/eclipse.html // good
## - http://sunearth.gsfc.nasa.gov/eclipse/phase/phasecat.html
## - http://sunearth.gsfc.nasa.gov/eclipse/phase/phase2001gmt.html
## - http://sunearth.gsfc.nasa.gov/eclipse/LEvis/LEaltitude.html
## - http://sunearth.gsfc.nasa.gov/eclipse/resource.html
## - http://www.mreclipse.com/Special/SEprimer.html // Solar Eclipses for Beginners
## - http://www.mreclipse.com/Special/LEprimer.html // Lunar Eclipses for Beginners
## - http://www.mreclipse.com/MrEclipse.html // for Beginners
## - http://astronote.org/
## - http://myhome.naver.com/dudwn1109/appearance/solor_eclipse.htm
## - http://www.kao.re.kr/html/study/
</PRE>
__END;
echo "\n</BODY>\n</HTML>";
return;
?>
Page loading: 0.05(server) + (network) + (browser) seconds