/// <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); }