Horizontal sundial calculations: Difference between revisions

Content added Content deleted
m (→‎{{header|REXX}}: calculated the legal meridian instead of using a specified amount.)
No edit summary
Line 2,126: Line 2,126:
6 pm 90.5 84.2
6 pm 90.5 84.2
══════════ ══════════ ════════════
══════════ ══════════ ════════════
</pre>

=={{header|Ring}}==
<lang ring>
# Project : Horizontal sundial calculations
# Date : 2017/10/24
# Author : Gal Zsolt (~ CalmoSoft ~)
# Email : <calmosoft@gmail.com>

load "stdlib.ring"
pi = 22/7
decimals(3)

latitude = -4.95
longitude = -150.5
meridian = -150.0

see "enter latitude (degrees): " + latitude + nl
see "enter longitude (degrees): " + longitude + nl
see "enter legal meridian (degrees): " + meridian + nl
see "time " + " sun hour angle" + " dial hour line angle" + nl
for hour = 6 to 18
hra = 15*hour - longitude + meridian - 180
hla = 180/pi*(atan(sin(pi/180*latitude) * tan(pi/180*hra)))
if fabs(hra) > 90
hla = hla + 180 * sign(hra * latitude)
ok
see "" + hour + " " + hra + " " + hla + nl
next
</lang>
Output:
<pre>
enter latitude (degrees): -4.950
enter longitude (degrees): -150.500
enter legal meridian (degrees): -150
time sun hour angle dial hour line angle
6 -89.500 84.607
7 -74.500 17.316
8 -59.500 8.342
9 -44.500 4.850
10 -29.500 2.796
11 -14.500 1.279
12 0.500 -0.043
13 15.500 -1.371
14 30.500 -2.911
15 45.500 -5.021
16 60.500 -8.680
17 75.500 -18.488
18 90.500 -96.224
</pre>
</pre>