RosettaCodeData/Task/Horizontal-sundial-calculations/DWScript/horizontal-sundial-calculations.dw
2013-04-11 11:14:19 -07:00

23 lines
756 B
Text

procedure PrintSundial(lat, lng, lme : Float);
begin
PrintLn(Format('latitude: %7.2f', [lat]));
PrintLn(Format('longitude: %7.2f', [lng]));
PrintLn(Format('legal meridian: %7.2f', [lme]));
var slat := Sin(DegToRad(lat));
PrintLn(Format('sine of latitude: %.3f', [slat]));
PrintLn(Format('diff longitude: %.3f', [lng-lme]));
PrintLn('');
PrintLn('Hour, sun hour angle, dial hour line angle from 6am to 6pm');
var h : Integer;
for h:=-6 to 6 do begin
var hra := 15 * h - (lng - lme);
var hraRad := DegToRad(hra);
var hla :=RadToDeg(ArcTan2(Sin(hraRad)*slat, Cos(hraRad)));
PrintLn(Format('HR=%3d; HRA=%7.3f; HLA=%7.3f', [h, hra, hla]));
end
end;
PrintSundial(-4.95, -150.5, -150);