Php Programming Code Examples
Php > Complete Programs Code Examples
Example program using the functions in sunriset.inc to calculate sunrise
Example program using the functions in sunriset.inc to calculate sunrise
sunset twilight & length of day
<?
require('sunriset.inc');
function strtime($ftime) {
$hr = (int) $ftime;
$mn_sec = ($ftime - $hr) * 60;
$mn = (int) $mn_sec;
$sec = ($mn_sec - $mn) * 60;
$res = printf("%02d:%02d:%02d",$hr,$mn,$sec);
return $res;
}
$mname[1] = "January";
$mname[2] = "February";
$mname[3] = "March";
$mname[4] = "April";
$mname[5] = "May";
$mname[6] = "June";
$mname[7] = "July";
$mname[8] = "August";
$mname[9] = "September";
$mname[10] = "October";
$mname[11] = "November";
$mname[12] = "December";
?>
<HTML>
<HEAD><B>Sunrise / Sunset time calculation</B></HEAD><BR><br>
<BODY bgcolor="White" text="Black">
<?
$showres = "yes";
if(!isset($lon) or
!isset($lat) or
!isset($year) or
!isset($month) or
!isset($day)):
$showres = "no";
?>
<P><FORM ACTION=sunriset.php3 METHOD=post>
<INPUT TYPE=text NAME=lon SIZE=10 value=<?echo $lon; ?>>Enter the
Longitude<BR>
<INPUT TYPE=text NAME=lat SIZE=10 value=<?echo $lat; ?>>Enter the Latitude<BR>
<SELECT NAME=month SIZE=1 WIDTH=2>
<? $curdt = getdate(time());
for($i=1;$i<=12;$i++) {
echo "<OPTION ";
if($i==$curdt["mon"]) {echo "SELECTED";}
echo " VALUE=$i>$mname[$i]</OPTION>";
}
?>
</SELECT>
<SELECT NAME=day SIZE=1 WIDTH=2>
<? for($i=1;$i<=31;$i++) {
echo "<OPTION ";
if($i==$curdt["mday"]) {echo "SELECTED";}
echo " VALUE=$i>$i</OPTION>";
}
?>
</SELECT>
<SELECT NAME=year SIZE=1 WIDTH=4>
<? for($i=1801;$i<=2099;$i++) {
echo "<OPTION ";
if($i==$curdt["year"]) {echo "SELECTED";}
echo " VALUE=$i>$i</OPTION>";
}
?>
</SELECT>
<INPUT TYPE=submit VALUE="Submit">
</FORM></P>
<?
elseif(empty($lon) or
empty($lat) or
empty($year) or
empty($month) or
empty($day)):
$showres = "no";
echo "<B>One of your entries was left blank. Please complete the form and re-
submit.</B><BR>";
?>
<P><FORM ACTION=sunriset.php3 METHOD=post>
<INPUT TYPE=text NAME=lon SIZE=10 value=<?echo $lon;?>>Enter the Longitude<BR>
<INPUT TYPE=text NAME=lat SIZE=10 value=<?echo $lat;?>>Enter the Latitude<BR>
<INPUT TYPE=text NAME=year SIZE=4 value=<?echo $year;?>>Year (4 digits)
<INPUT TYPE=text NAME=month SIZE=2 value=<?echo $month;?>>Month
<INPUT TYPE=text NAME=day SIZE=2 value=<?echo $day;?>>Day
<INPUT TYPE=submit VALUE="Submit">
</FORM></P>
<?
endif;
if($showres == "yes"):
$trise = (double) 0;
$tset = (double) 0;
echo "Input Parameters:<br>";
echo "<b>Longitude: </b>".$lon."??";
echo "<b>Latitude: </b>".$lat."<br>";
echo "<b>Date: </b>".$month."/".$day."/".$year."<br>";
$daylen = day_length($year,$month,$day,$lon,$lat);
$civlen = day_civil_twilight_length($year,$month,$day,$lon,$lat);
$nautlen = day_nautical_twilight_length($year,$month,$day,$lon,$lat);
$astrlen = day_astronomical_twilight_length($year,$month,$day,$lon,$lat);
$rs = sun_rise_set ( $year, $month, $day, $lon, $lat,
&$rise, &$set );
$civ = civil_twilight ( $year, $month, $day, $lon, $lat,
&$civ_start, &$civ_end );
$naut = nautical_twilight ( $year, $month, $day, $lon, $lat,
&$naut_start, &$naut_end );
$astr = astronomical_twilight( $year, $month, $day, $lon, $lat,
&$astr_start, &$astr_end );
echo "<table border=1>";
echo "<tr><td>Day length</td><td>";
echo strtime($daylen) . "</td></tr>";
echo "<tr><td>???With civil twilight</td><td>";
echo strtime($civlen) . "</td></tr>\n";
echo "<tr><td>???With nautical twilight</td><td>";
echo strtime($nautlen) . "</td></tr>\n";
echo "<tr><td>???With astronomical twilight</td><td>";
echo strtime($astrlen) . "</td></tr>\n";
echo "<tr><td>Length of twilight: civil</td><td>";
echo strtime(($civlen-$daylen)/2.0) . "</td></tr>\n";
echo "<tr><td>???nautical</td><td>";
echo strtime(($nautlen-$daylen)/2.0) . "</td></tr>\n";
echo "<tr><td>???astronomical</td><td>";
echo strtime(($astrlen-$daylen)/2.0) . "</td></tr>\n";
echo "<tr><td>Sun at south</td><td>";
echo strtime(($rise+$set)/2.0) . " UT </td></tr>\n";
switch( $rs ) {
case 0:
echo "<tr><td>Sun rises</td><td>";
echo strtime($rise) . " UT</td></tr>";
echo "<tr><td>Sun sets</td><td>";
echo strtime($set) . " UT</td></tr>";
break;
case +1:
echo "<tr><td>Sun above horizon</td><td>?</td></tr>";
break;
case -1:
echo "<tr><td>Sun below horizon</td><td>?</td></tr>";
break;
}
switch( $civ ){
case 0:
echo "<tr><td>Civil twilight starts</td><td>";
echo strtime($civ_start) . " UT</td></tr>";
echo "<tr><td>Civil twilight ends</td><td>";
echo strtime($civ_end) . " UT</td></tr>";
break;
case +1:
echo "<tr><td>Never darker than civil
twilight</td><td>?</td></tr>";
break;
case -1:
echo "<tr><td>Never as bright as civil twilight</td><td>?</td></tr>";
break;
}
switch( $naut ) {
case 0:
echo "<tr><td>Nautical twilight starts</td><td>";
echo strtime($naut_start) . " UT</td></tr>";
echo "<tr><td>Nautical twilight ends</td><td>";
echo strtime($naut_end) . " UT</td></tr>";
break;
case +1:
echo "<tr><td>Never darker than nautical twilight</td><td>?</td></tr>";
break;
case -1:
echo "<tr><td>Never as bright as nautical twilight</td><td>?</td></tr>";
break;
}
switch( $astr ) {
case 0:
echo "<tr><td>Astronomical twilight starts</td><td>";
echo strtime($astr_start) . " UT</td></tr>";
echo "<tr><td>Astronomical twilight ends</td><td>";
echo strtime($astr_end) . " UT</td></tr>";
break;
case +1:
echo "<tr><td>Never darker than astronomical
twilight</td><td>?</td></tr>";
break;
case -1:
echo "<tr><td>Never as bright as astronomical
twilight</td><td>?</td></tr>";
break;
}
echo "</table>";
endif;
?>
</BODY>
</HTML>