Averages/Mean time of day: Difference between revisions
Updated C#
(→{{header|Vlang}}: Rename "Vlang" in "V (Vlang)") |
(Updated C#) |
||
Line 407:
using System.Linq;
using System.Text;
using static System.Math;
namespace RosettaCode;
{
private const int SecondsPerDay = 60 * 60 * 24;
▲ class Program
{
▲ static void Main(string[] args)
{▼
360 * time.Hours / 24.0 +▼
{▼
while
string input
if (TimeSpan.TryParse(input, out var digitime))
public static TimeSpan MeanTime(IEnumerable<TimeSpan> ts) => FromDegrees(MeanAngle(ts.Select(ToDegrees)));
public static double ToDegrees(TimeSpan ts) => ts.TotalSeconds * 360d / SecondsPerDay;
public static TimeSpan FromDegrees(double degrees) => TimeSpan.FromSeconds((int)(degrees * SecondsPerDay / 360));
▲ List<double> digitimes = new List<double>();
public static double MeanAngle(IEnumerable<double> angles)
var x = angles.Average(a
var y = angles.Average(a => Sin(a * PI
return (Atan2(y, x) * 180 / PI +
▲ Console.WriteLine("Seems this is wrong input: ignoring time");
▲ }
▲ } while (!string.IsNullOrWhiteSpace(input));
▲ if(digitimes.Count() > 0)
▲ Console.WriteLine("The mean time is : {0}", TimeFromDegrees(360 + MeanAngle(digitimes)));
▲ }
}
}
|