public static RiseTransitSetModel GetRiseTransitSet( this CelestialObjectPositionModel celestialObjectPosition, CelestialObjectPositionModel earthPosition, double longitudeDegrees, double latitudeDegrees) { var transitTimeSpan = celestialObjectPosition.GetTransitTimeSpan(earthPosition, longitudeDegrees); var transit = new DateTimeOffset( celestialObjectPosition.ReferenceDate.DateTime.Year, celestialObjectPosition.ReferenceDate.DateTime.Month, celestialObjectPosition.ReferenceDate.DateTime.Day, transitTimeSpan.Hours, transitTimeSpan.Minutes, transitTimeSpan.Seconds, transitTimeSpan.Milliseconds, TimeSpan.Zero); var hourHorizonDegrees = celestialObjectPosition.GetHourHorizon(latitudeDegrees, 0); var hourHorizonTimeSpan = DegreeHelper.DegreeToTimeSpan(hourHorizonDegrees); var rise = transit - hourHorizonTimeSpan; var set = transit + hourHorizonTimeSpan; return(new RiseTransitSetModel(rise, transit, set)); }
public void GetTransitTimeSpanTest() { var expected = new TimeSpan(0, 4, 20, 41, 760); var actual = JupiterPosition.GetTransitTimeSpan(EarthPosition, -5); Assert.Equal(expected, actual); }