예제 #1
0
        private static Distance GetMoonDistance(DateTime d, double[] values)
        {
            //Ch 47
            double JDE = JulianConversions.GetJulian(d); //Get julian
            double T   = (JDE - 2451545) / 36525;        //Get dynamic time.

            double D = values[1];
            double M = values[2];
            double N = values[3];
            double F = values[4];

            double dist = 385000.56 + (MeeusTables.Moon_Periodic_Er(D, M, N, F, T) / 1000);

            return(new Distance(dist));
        }
예제 #2
0
        /// <summary>
        /// Gets moon distance (Ch 47).
        /// </summary>
        /// <param name="d">DateTime</param>
        /// <param name="offset">UTC offset in hours</param>
        /// <returns>Distance</returns>
        public static Distance GetMoonDistance(DateTime d, double offset)
        {
            //Ch 47
            offset *= -1;
            double julianOffset = offset * .04166667;
            double JDE          = JulianConversions.GetJulian(d) + julianOffset; //Get julian
            double T            = (JDE - 2451545) / 36525;                       //Get dynamic time.

            double[] values = Get_Moon_LDMNF(T);

            double D = values[1];
            double M = values[2];
            double N = values[3];
            double F = values[4];

            //Ch 47 distance formula
            double dist = 385000.56 + (MeeusTables.Moon_Periodic_Er(D, M, N, F, T) / 1000);

            return(new Distance(dist));
        }