Example #1
0
        /// <summary>
        /// Расчитываем солнечное склонение по дате и времени
        /// </summary>
        /// <param name="date">дата и время</param>
        /// <returns>солнечное склонение в градусах</returns>
        public static double GetSunDeclination(DateTime date)
        {
            // http://en.wikipedia.org/wiki/Ecliptic
            // ε = 23°26′21,448″ — 46,8150″ t — 0,00059″ t² + 0,001813″ t³
            double T = (date.ToJulian() -  JulianDataTime.J2000)/36525;
            double obliquity = 23.4392911 - (46.8150 / 3600.0) * T - (0.00059 / 3600) * T * T + (0.001813 / 3600) * T * T * T;


            //http://en.wikipedia.org/wiki/Position_of_the_Sun
            return -obliquity * Math.Cos((360.0 * (date.DayOfYear + 9) / 365.0).ToRadians());
        }
 public void SomeTest()
 {
     var date = new DateTime(1942, 8, 2, 15, 0, 0);
     Assert.AreEqual(date.ToJulian(), 2430574.125);
 }
 public void MillinumTest()
 {
     var date = new DateTime(2000, 1, 1, 12, 0, 0);  
     Assert.AreEqual(date.ToJulian(), 2451545);
 }