Frink Server Pages Highlighter - sun.fsp

[Try sun.fsp]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
            "http://www.w3.org/TR/html4/strict.dtd">
<HTML LANG="en">
 <HEAD>
  <TITLE>Sun Locator</TITLE>
  <META HTTP-EQUIV="Default-Style" CONTENT="APE Airy"> 
  <META HTTP-EQUIV="Default-Style" CONTENT="Spaceship"> 
  <LINK REL="StyleSheet" HREF="/frinkdocs/spaceship.css"
        TYPE="text/css" TITLE="Spaceship">
  <LINK REL="Alternate StyleSheet" HREF="/frinkdocs/apeairy.css"
        TYPE="text/css" TITLE="APE Airy"> 
  <LINK REL="Alternate StyleSheet" HREF="/frinkdocs/style.css" TYPE="text/css"
        TITLE="APE Classic">
  <LINK REL="Alternate StyleSheet" HREF="/frinkdocs/style2.css" TYPE="text/css"
        TITLE="Compact"> 
  <LINK REL="icon" HREF="/images/futureboyicon.png" TYPE="image/png">
 </HEAD>

 <BODY>
  <H1>Sun Locator</H1>
  <%
  use ../sun.frink
  use ../HTMLUtils.frink
  
  North = +1
  South = -1
  West = +1
  East = -1

  t = "$date" ? parseDate[date] : now[] 
  latitude = "$latitude" ? latitude : "39.58560"
  long = "$long" ? long : "104.89598"
  latHemi = "$latHemi" ? latHemi : "North"
  longHemi = "$longHemi" ? longHemi : "West"
  longHemis = ["West", "East"]
  latHemis = ["North", "South"]
  timezone = "$timezone" ? timezone : "Mountain"
  %>

  <FORM ACTION="sun.fsp" METHOD="GET">
   <TABLE>
     <TR>
      <TD>Latitude:
      <TD><INPUT TYPE="text" NAME="latitude" VALUE="$latitude">
      <TD>degrees
      <TD>
       <SELECT NAME="latHemi">
        <% makeSelect[latHemis, latHemi] %>
       </SELECT>
     <TR>
      <TD>Longitude:
      <TD><INPUT TYPE="text" NAME="long" VALUE="$long">
      <TD>degrees
      <TD>
       <SELECT NAME="longHemi">
        <% makeSelect[longHemis, longHemi] %>
       </SELECT>
     <TR>
      <TD>Timezone:
      <TD>
        <SELECT NAME="timezone">
    <% makeSelect[sort[timezones[]], timezone] %>
        </SELECT>
      </TD>

   </TABLE>
   <INPUT TYPE="SUBMIT">
  </FORM>
  <%
    latNum = eval["$latitude * $latHemi"] degree
    longNum = eval["$long * $longHemi"] degree
    [azimuth, altitude] = refractedSunAzimuthAltitude[t, latNum, longNum]
  %>

  <P>
   From latitude <%= (abs[latNum] -> degrees) + "&deg; " + latitudeName[latNum] %>
   longitude <%= (abs[longNum] -> degrees) + "&deg; " + longitudeName[longNum] %>:

  <P>
   The sun is located <%= format[altitude, degree, 4] %>
   degrees above the horizon<BR>
   
   True compass bearing:
   <%= format[(azimuth + 180 degrees) mod circle, degree,4 ] %> degrees.
  </P>

  <P>
   Time: <%= t->timezone %> </P>

  <TABLE BORDER="0" SUMMARY="Sunrise/Sunset">
  <%
   out = ### hh:mm:ss a z ###

   sunrise = sunrise[now[], latNum, longNum]
   println["<TR><TD>Sunrise<TD>" + ( sunrise -> [out, timezone])]
   sunset = sunset[now[], latNum, longNum]
   println["<TR><TD>Sunset<TD>" + ( sunset -> [out, timezone])]

   [azimuth, altitude] = refractedSunAzimuthAltitude[sunrise, latNum, longNum]
   print["<TR><TD>Sun rises at bearing<TD>"]
   println[format[(azimuth + 180 degrees) mod circle, degree, 4 ] + " degrees"]

   [azimuth, altitude] = refractedSunAzimuthAltitude[sunset, latNum, longNum]
   print["<TR><TD>Sun sets at bearing<TD>"]
   println[format[(azimuth + 180 degrees) mod circle, degree, 4 ] + " degrees"]

   println["<TR><TD>Astronomical twilight begins<TD>" + (astronomicalTwilightBegin[now[], latNum, longNum] -> [out, timezone])]

   println["<TR><TD>Nautical twilight begins<TD>" + (nauticalTwilightBegin[now[], latNum, longNum] -> [out, timezone])]

   println["<TR><TD>Civil twilight begins<TD>" + (civilTwilightBegin[now[], latNum, longNum] -> [out, timezone])]

   println["<TR><TD>Civil twilight ends<TD>" + (civilTwilightEnd[now[], latNum, longNum] -> [out, timezone])]

   println["<TR><TD>Nautical twilight ends<TD>" + (nauticalTwilightEnd[now[], latNum, longNum] -> [out, timezone])]

   println["<TR><TD>Astronomical twilight ends<TD>" + (astronomicalTwilightEnd[now[], latNum, longNum] -> [out, timezone])]
   %>
  </TABLE>

  <HR>
  <P>
   View source of <A HREF="/fsp/highlight.fsp?fileName=sun.fsp">This FSP
    page</A> or the <A HREF="/fsp/colorize.fsp?fileName=sun.frink">astronomical library</A>
   used by this code.
  </P>
  
  <P>
   <I><A HREF="mailto:eliasen@mindspring.com">Alan Eliasen</A></I> was born
   <%= round[now[] - #1969-08-19 04:54 PM Mountain#, minute] -> ["days", "hours", "minutes"] %> ago.
  </P>

  <P>
   Powered by <A HREF="/frinkdocs/">Frink</A> and <A HREF="/frinkdocs/fspdocs.html">Frink Server Pages</A>.
  </P>  
 </BODY>
</HTML>

[Try sun.fsp]


Alan Eliasen was born 14705 days, 3 hours, 2 minutes ago.

Back to Frink Server Pages documentation.