Показать сообщение отдельно
  #8  
Старый 12.09.2013, 13:33
Annihilator Annihilator вне форума
Прохожий
 
Регистрация: 16.06.2013
Сообщения: 29
Версия Delphi: Delphi XE 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от Zames
Для вычесления Юлианской даты есть формула.
JD=INT*(365.25*(Year1 + 4716)) + INT*(30.6001*(Month1 + 1)) + Day1 - 1524.5 а также некоторое условие .Если month=1 или Month=2 тогда следует принять Year=Year-1 Month=Month+12.
Если предположить, что этот алгоритм правильный, то тогда у вас должно быть что-то типа того:
Код:
function TForm1.jd(year, month, day: real): real;
begin
  if (month=1) or ( month=2) then
    begin
      Year:=Year-1;
      Month:=Month+12;
    end;
  result:=INT(365.25*(Year + 4716)) + INT(30.6001*(Month + 1)) + Day  - 1524.5;
end;
Но тогда ваша функция возвращает неправильное значение. Есть сайт http://planetcalc.ru/503/, там калькулятор возвращает 2456547.50, моя функция возвращает 2456548, а ваша 2456560,5.
Ответить с цитированием