Horizontal sundial calculations: Difference between revisions
Content deleted Content added
m →{{header|Sidef}}: updated code |
Added Kotlin |
||
Line 1,158: | Line 1,158: | ||
HR= 5; HRA= 75.500; HLA= -18.451 |
HR= 5; HRA= 75.500; HLA= -18.451 |
||
HR= 6; HRA= 90.500; HLA= -95.775</pre> |
HR= 6; HRA= 90.500; HLA= -95.775</pre> |
||
=={{header|Kotlin}}== |
|||
<lang scala>// version 1.1.2 |
|||
fun main(args: Array<String>) { |
|||
println("Please enter the following in degrees:") |
|||
print(" Latitude : ") |
|||
val lat = readLine()!!.toDouble() |
|||
print(" Longitude : ") |
|||
val lng = readLine()!!.toDouble() |
|||
print(" Legal Meridian : ") |
|||
val mer = readLine()!!.toDouble() |
|||
val slat = sin(toRadians(lat)) |
|||
val diff = lng - mer |
|||
println("\nSine of latitude = ${"%.6f".format(slat)}") |
|||
println("Longitude - Meridian = ${"%.3f".format(diff)}\n") |
|||
println("Hour Sun Hour Angle Dial Hour Line Angle") |
|||
println("----- -------------- --------------------") |
|||
println(" ° °") |
|||
for (h in -6..6) { |
|||
var hr = h + 12 |
|||
val am = if (hr < 12) "AM" else "PM" |
|||
if (hr > 12) hr -= 12 |
|||
val sha = 15.0 * h - diff |
|||
val dhla = toDegrees(atan2(slat * sin(toRadians(sha)), cos(toRadians(sha)))) |
|||
println("%2d %s %+7.3f %+7.3f".format(hr, am, sha, dhla)) |
|||
} |
|||
}</lang> |
|||
Sample input/output: |
|||
{{out}} |
|||
<pre> |
|||
Please enter the following in degrees: |
|||
Latitude : -4.95 |
|||
Longitude : -150.5 |
|||
Legal Meridian : -150 |
|||
Sine of latitude = -0.086286 |
|||
Longitude - Meridian = -0.500 |
|||
Hour Sun Hour Angle Dial Hour Line Angle |
|||
----- -------------- -------------------- |
|||
° ° |
|||
6 AM -89.500 +84.225 |
|||
7 AM -74.500 +17.283 |
|||
8 AM -59.500 +8.334 |
|||
9 AM -44.500 +4.847 |
|||
10 AM -29.500 +2.795 |
|||
11 AM -14.500 +1.278 |
|||
12 PM +0.500 -0.043 |
|||
1 PM +15.500 -1.371 |
|||
2 PM +30.500 -2.910 |
|||
3 PM +45.500 -5.018 |
|||
4 PM +60.500 -8.671 |
|||
5 PM +75.500 -18.451 |
|||
6 PM +90.500 -95.775 |
|||
</pre> |
|||
=={{header|Liberty BASIC}}== |
=={{header|Liberty BASIC}}== |