Averages/Mean time of day: Difference between revisions
Content added Content deleted
Thundergnat (talk | contribs) m (→{{header|C}}: Remove vanity tags) |
No edit summary |
||
Line 2,057: | Line 2,057: | ||
23:47:43 |
23:47:43 |
||
</pre> |
</pre> |
||
=={{header|Yabasic}}== |
|||
{{trans|Phix}} |
|||
<lang Yabasic>sub atan2(y, x) |
|||
return 2 * atan((sqrt(x **2 + y ** 2) - x) / y) |
|||
end sub |
|||
sub MeanAngle(angles()) |
|||
local x, y, ai_rad, l, i |
|||
l = arraysize(angles(), 1) |
|||
for i = 1 to l |
|||
ai_rad = angles(i) * PI / 180 |
|||
x = x + cos(ai_rad) |
|||
y = y + sin(ai_rad) |
|||
next i |
|||
if abs(x) < 1e-16 return false |
|||
return atan2(y, x) * 180 / PI |
|||
end sub |
|||
sub toSecAngle(hours, minutes, seconds) |
|||
return ((hours * 60 + minutes) * 60 + seconds) / (24 * 60 * 60) * 360 |
|||
end sub |
|||
dim Times(4) |
|||
Times(1) = toSecAngle(23,00,17) |
|||
Times(2) = toSecAngle(23,40,20) |
|||
Times(3) = toSecAngle(00,12,45) |
|||
Times(4) = toSecAngle(00,17,19) |
|||
sub toHMS$(t) |
|||
local s$ |
|||
if t then |
|||
if t < 0 t = t + 360 |
|||
t = 24 * 60 * 60 * t / 360 |
|||
s$ = str$(int(t / 3600), "%02g") + ":" + str$(int(mod(t, 3600) / 60), "%02g") + ":" + str$(int(mod(t, 60)), "%02g") |
|||
else |
|||
s$ = "not meaningful" |
|||
end if |
|||
return s$ |
|||
end sub |
|||
print "Mean Time is ", toHMS$(MeanAngle(Times())) |
|||
// Output: Mean Time is 23:47:43 |
|||
</lang> |
|||
=={{header|zkl}}== |
=={{header|zkl}}== |