/// <summary> /// Calculate Moon's distance, angular diameter, and horizontal parallax. /// </summary> /// <returns> /// <para>earth_moon_dist -- Earth-Moon distance (km)</para> /// <para>ang_diameter_deg -- Angular diameter (degrees part)</para> /// <para>ang_diameter_min -- Angular diameter (minutes part)</para> /// <para>hor_parallax_deg -- Horizontal parallax (degrees part)</para> /// <para>hor_parallax_min -- Horizontal parallax (minutes part)</para> /// <para>hor_parallax_sec -- Horizontal parallax (seconds part)</para> /// </returns> public (double earthMoonDist, double angDiameterDeg, double angDiameterMin, double horParallaxDeg, double horParallaxMin, double horParallaxSec) MoonDistAngDiamHorParallax(double lctHour, double lctMin, double lctSec, bool isDaylightSaving, int zoneCorrectionHours, double localDateDay, int localDateMonth, int localDateYear) { var daylightSaving = (isDaylightSaving) ? 1 : 0; var moonDistance = PAMacros.MoonDist(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear); var moonAngularDiameter = PAMacros.MoonSize(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear); var moonHorizontalParallax = PAMacros.MoonHP(lctHour, lctMin, lctSec, daylightSaving, zoneCorrectionHours, localDateDay, localDateMonth, localDateYear); var earthMoonDist = Math.Round(moonDistance, 0); var angDiameterDeg = PAMacros.DecimalDegreesDegrees(moonAngularDiameter + 0.008333); var angDiameterMin = PAMacros.DecimalDegreesMinutes(moonAngularDiameter + 0.008333); var horParallaxDeg = PAMacros.DecimalDegreesDegrees(moonHorizontalParallax); var horParallaxMin = PAMacros.DecimalDegreesMinutes(moonHorizontalParallax); var horParallaxSec = PAMacros.DecimalDegreesSeconds(moonHorizontalParallax); return(earthMoonDist, angDiameterDeg, angDiameterMin, horParallaxDeg, horParallaxMin, horParallaxSec); }