Я пытаюсь рассчитать дату по юлианскому календарю из строки даты календаря, используя javascript. Я нашел этот сайт, где объясняется, как его рассчитать.
Я сделал этот код javascript: https://jsfiddle.net/kzgn8vs1/1/
var time = moment("2018-04-07 23:45:16 -0300", "YYYY-MM-DD HH:mm:ss Z").utc();
var Y = time.year();
var M = time.month() + 1;
var D = time.date() + moment.duration(time.format('HH:mm:ss')).asDays();
if( M == 1 || M == 2 ) {
Y = Y - 1;
M = M + 12;
}
var A = Y / 100;
var B = 2 - A + (A / 4);
var C = ( Y > 0 ) ? (365.25 * Y) : ((365.25 * Y) - 0.75);
var E = 30.6001 * (M + 1);
var JD = B+C+D+E+1720994.5;
console.log(JD);
Что возвращает 2458216.9802685184 для даты 2018-04-07 23:45:16 -0300. Но когда я пробую некоторые онлайн-конвертеры, такие как http://www.onlineconversion.com/julian_date.htm и https://www.aavso.org/jd-calculator
Ввод даты 2018-04-08 2:45:16 (моя дата преобразована в UTC), оба возвращают 2458216.61477. Разница в 0,36 с моим результатом.
Где ошибка? В моем коде или в методе расчета?