RosettaCodeData/Task/Horizontal-sundial-calculations/QBasic/horizontal-sundial-calculations.basic
2025-02-27 18:35:13 -05:00

20 lines
722 B
Text

' Horizontal sundial calculations
INPUT "Enter latitude => "; Lat
INPUT "Enter longitude => "; Lng
INPUT "Enter legal meridian => "; Ref
PRINT
PI = 4 * ATN(1)
SLat = SIN(Lat * PI / 180)
PRINT " sine of latitude: "; USING "#.##^^^^"; SLat
PRINT " diff longitude: "; USING "####.###"; Lng - Ref
PRINT
PRINT "Hour, sun hour angle, dial hour line angle from 6am to 6pm"
FOR Hour% = -6 TO 6
HourAngle = 15 * Hour%
HourAngle = HourAngle - (Lng - Ref): ' correct for longitude difference
HourLineAngle = ATN(SLat * TAN(HourAngle * PI / 180)) * 180 / PI
PRINT "HR="; USING "+##"; Hour%;
PRINT "; HRA="; USING "+###.###"; HourAngle;
PRINT "; HLA="; USING "+###.###"; HourLineAngle
NEXT Hour%
END