Averages/Mean time of day: Difference between revisions

m
(Added 11l)
Line 22:
{{trans|Python}}
<lang 11l>F mean_angle(angles)
AV x = sum(angles.map(a -> cos(radians(a)))) / angles.len
AV y = sum(angles.map(a -> sin(radians(a)))) / angles.len
R degrees(atan2(y, x))
 
F mean_time(times)
AV t = (times.map(time -> time.split(‘:’)))
AV seconds = (t.map(hms -> (Float(hms[2]) + Int(hms[1]) * 60 + Int(hms[0]) * 3600)))
AV day = 24 * 60 * 60
AV to_angles = seconds.map(s -> s * 360.0 / @day)
AV mean_as_angle = mean_angle(to_angles)
AV mean_seconds = round(mean_as_angle * day / 360.0)
I mean_seconds < 0
mean_seconds += day
AV h = mean_seconds I/ 3600
AV m = mean_seconds % 3600
AV s = m % 60
m = m I/ 60
R String(h).zfill(2)‘:’String(m).zfill(2)‘:’String(s).zfill(2)
1,481

edits