public static double CalculateEarthPosition(double julianDate) { var positions = PositionBySphereEquinoxArray.GetPositions(); var length = positions.Length; double julianMillennias = Tools.GetMillenniasCount(julianDate); double raisedJulian = julianMillennias; double result = 0; for (int i = 0; i < length; i++) { double tempResult = 0; for (int j = 0; j < positions[i].Size; j++) { tempResult += positions[i].GetPositions()[j].First * Math.Cos(positions[i].GetPositions()[j].Second + positions[i].GetPositions()[j].Third * julianMillennias); } if (i > 0) { tempResult *= raisedJulian; raisedJulian *= julianMillennias; } result += tempResult; } return(CoordinateTransformation.MapTo0To2PIRange(result)); }