/// <summary> /// Calculates all celestial data. Coordinates will notify as changes occur /// </summary> /// <param name="lat">Decimal format latitude</param> /// <param name="longi">Decimal format longitude</param> /// <param name="date">Geographic DateTime</param> /// <param name="el">EagerLoading Info for Auto-Calculations</param> internal void CalculateCelestialTime(double lat, double longi, DateTime date, EagerLoad el) { date = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, DateTimeKind.Utc); SunCalc.CalculateSunTime(lat, longi, date, this, el); if (el.Extensions.Lunar_Cycle) { MoonCalc.GetMoonTimes(date, lat, longi, this); MoonCalc.GetMoonDistance(date, this); perigee = MoonCalc.GetPerigeeEvents(date); apogee = MoonCalc.GetApogeeEvents(date); } MoonCalc.GetMoonIllumination(date, this, lat, longi, el); if (el.Extensions.Zodiac) { SunCalc.CalculateZodiacSign(date, this); MoonCalc.GetMoonSign(date, this); } Calculate_Celestial_IsUp_Booleans(date, this); }
/// <summary> /// Calculates all celestial data. Coordinates will notify as changes occur /// </summary> /// <param name="lat">Decimal format latitude</param> /// <param name="longi">Decimal format longitude</param> /// <param name="date">Geographic DateTime</param> /// <param name="el">EagerLoading Info for Auto-Calculations</param> /// <param name="offset">UTC offset in hours</param> internal void CalculateCelestialTime(double lat, double longi, DateTime date, EagerLoad el, double offset) { if (offset < -12 || offset > 12) { throw new ArgumentOutOfRangeException("Time offsets cannot be greater than 12 or less than -12."); } date = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, DateTimeKind.Utc); if (el.Extensions.Solar_Cycle || el.Extensions.Solar_Eclipse) { SunCalc.CalculateSunTime(lat, longi, date, this, el, offset); } if (el.Extensions.Lunar_Cycle) { MoonCalc.GetMoonTimes(date, lat, longi, this, offset); MoonCalc.GetMoonDistance(date, this, offset); perigee = MoonCalc.GetPerigeeEvents(date); apogee = MoonCalc.GetApogeeEvents(date); //Shift perigee / apogee is working outside UTC if (offset != 0) { perigee.ConvertTo_Local_Time(offset); apogee.ConvertTo_Local_Time(offset); } } if (el.Extensions.Lunar_Cycle || el.Extensions.Zodiac || el.Extensions.Lunar_Eclipse) { MoonCalc.GetMoonIllumination(date, this, lat, longi, el, offset); } if (el.Extensions.Zodiac) { SunCalc.CalculateZodiacSign(date, this); MoonCalc.GetMoonSign(date, this); } if (el.Extensions.Lunar_Cycle || el.Extensions.Solar_Cycle) { Calculate_Celestial_IsUp_Booleans(date, this); } //Shift eclipses if eagerloaded and offset is not 0 if (el.Extensions.Lunar_Eclipse && offset != 0) { lunarEclipse.ConvertTo_LocalTime(offset); } if (el.Extensions.Solar_Eclipse && offset != 0) { solarEclipse.ConvertTo_LocalTime(offset); } }
/// <summary> /// Calculate moon data based on lat/long and date /// </summary> /// <param name="lat">Decimal format latitude</param> /// <param name="longi">Decimal format longitude</param> /// <param name="date">Geographic DateTime</param> /// <returns>Partially populated Celestial object</returns> public static Celestial CalculateMoonData(double lat, double longi, DateTime date) { date = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, DateTimeKind.Utc); Celestial c = new Celestial(false); MoonCalc.GetMoonTimes(date, lat, longi, c); MoonCalc.GetMoonDistance(date, c); MoonCalc.GetMoonSign(date, c); MoonCalc.GetMoonIllumination(date, c, lat, longi); return(c); }
/// <summary> /// Calculates all celestial data. Coordinates will notify as changes occur /// </summary> /// <param name="lat">Decimal format latitude</param> /// <param name="longi">Decimal format longitude</param> /// <param name="date">Geographic DateTime</param> internal void CalculateCelestialTime(double lat, double longi, DateTime date) { date = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, DateTimeKind.Utc); SunCalc.CalculateSunTime(lat, longi, date, this); MoonCalc.GetMoonTimes(date, lat, longi, this); MoonCalc.GetMoonDistance(date, this); SunCalc.CalculateZodiacSign(date, this); MoonCalc.GetMoonSign(date, this); MoonCalc.GetMoonIllumination(date, this, lat, longi); SunCalc.CalculateAdditionSolarTimes(date, longi, lat, this); }
public static Celestial CalculateMoonData(double lat, double longi, DateTime date) { date = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, DateTimeKind.Utc); Celestial c = new Celestial(false); MoonCalc.GetMoonTimes(date, lat, longi, c, 0); MoonCalc.GetMoonDistance(date, c); MoonCalc.GetMoonSign(date, c); MoonCalc.GetMoonIllumination(date, c, lat, longi, new EagerLoad(), 0); c.perigee = MoonCalc.GetPerigeeEvents(date); c.apogee = MoonCalc.GetApogeeEvents(date); return(c); }
/// <summary> /// Calculate celestial data based on lat/long and utc date /// </summary> /// <param name="lat">Decimal format latitude</param> /// <param name="longi">Decimal format longitude</param> /// <param name="date">Geographic DateTime</param> /// <returns>Fully populated Celestial object</returns> public static Celestial CalculateCelestialTimes(double lat, double longi, DateTime date) { date = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, DateTimeKind.Utc); Celestial c = new Celestial(false); SunCalc.CalculateSunTime(lat, longi, date, c); MoonCalc.GetMoonTimes(date, lat, longi, c); MoonCalc.GetMoonDistance(date, c); SunCalc.CalculateZodiacSign(date, c); MoonCalc.GetMoonSign(date, c); MoonCalc.GetMoonIllumination(date, c); SunCalc.CalculateAdditionSolarTimes(date, longi, lat, c); return(c); }
/// <summary> /// Calculate celestial data based on lat/long and date. /// </summary> /// <param name="lat">Decimal format latitude</param> /// <param name="longi">Decimal format longitude</param> /// <param name="date">Geographic DateTime</param> /// <returns>Fully populated Celestial object</returns> public static Celestial CalculateCelestialTimes(double lat, double longi, DateTime date) { date = new DateTime(date.Year, date.Month, date.Day, date.Hour, date.Minute, date.Second, DateTimeKind.Utc); Celestial c = new Celestial(false); SunCalc.CalculateSunTime(lat, longi, date, c); MoonCalc.GetMoonTimes(date, lat, longi, c); MoonCalc.GetMoonDistance(date, c); SunCalc.CalculateZodiacSign(date, c); MoonCalc.GetMoonSign(date, c); MoonCalc.GetMoonIllumination(date, c, lat, longi); c.perigee = MoonCalc.GetPerigeeEvents(date); c.apogee = MoonCalc.GetApogeeEvents(date); Calculate_Celestial_IsUp_Booleans(date, c); return(c); }