Телескопы покупают здесь


A A A A Автор Тема: Перевод из юлианской даты в календарную  (Прочитано 1179 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн BerezkaАвтор темы

  • Новичок
  • *
  • Сообщений: 17
  • Благодарностей: 0
    • Сообщения от Berezka
Добрый день, возникли некоторые проблемы с переводом даты из юлианских дней в дни григорианского календаря. Алгоритм нашёл только здесь: https://ru.wikipedia.org/wiki/Юлианская_дата . Дело в том, что алгоритм, который предоставляет википедия не работает как надо (это касается только перевода из JD в календарную дату, а вот перевод из календарной даты в JD выполняется без нареканий). Есть ли какие-нибудь ещё источники, описывающие точный алгоритм перевода? Вообще, поискав в Google и Yandex можно найти мало чего вразумительного по этой теме, если вообще можно что-то отыскать. Заранее благодарю за помощь.

Оффлайн Deimos

  • Модератор
  • *****
  • Сообщений: 17 468
  • Благодарностей: 315
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Deimos
    • Белорусская любительская астрономическая сеть
Можете пример привести даты, которая даёт ошибку?
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн konstkir

  • *****
  • Сообщений: 30 183
  • Благодарностей: 463
    • Сообщения от konstkir
И как учуяли ошибку? :)

Оффлайн BerezkaАвтор темы

  • Новичок
  • *
  • Сообщений: 17
  • Благодарностей: 0
    • Сообщения от Berezka
Можете пример привести даты, которая даёт ошибку?

И как учуяли ошибку? :)

Возьмём например дату 2457810.5 . Если верить данному онлайн-калькулятору: http://cosmos-online.myhomeinet.ru/jd.php#.WXhdQ4TyiUk , то эта юлианская дата соответствует 26-му февраля 2017-года. Однако, используя алгоритм, предоставленный википедией мы получаем 25 февраля.

Оффлайн Geen

  • Модератор
  • *****
  • Сообщений: 11 318
  • Благодарностей: 173
  • Мне нравится этот форум!
    • Сообщения от Geen
Округление?
Если у тебя есть фонтан, заткни его, дай отдохнуть и фонтану.

А ещё мы любим обсуждать вкус устриц с теми кто их ел...

Оффлайн BerezkaАвтор темы

  • Новичок
  • *
  • Сообщений: 17
  • Благодарностей: 0
    • Сообщения от Berezka
Округление?

Делал всё, как написано. Использовал целочисленное деление.

Оффлайн Geen

  • Модератор
  • *****
  • Сообщений: 11 318
  • Благодарностей: 173
  • Мне нравится этот форум!
    • Сообщения от Geen
"Округление" надо было в кавычки взять :)
Указанная дата является границей между 25-ым и 26-ым февраля - к какому именно числу её относить вопрос скорее "филосовский"...
Если у тебя есть фонтан, заткни его, дай отдохнуть и фонтану.

А ещё мы любим обсуждать вкус устриц с теми кто их ел...

Оффлайн Deimos

  • Модератор
  • *****
  • Сообщений: 17 468
  • Благодарностей: 315
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Deimos
    • Белорусская любительская астрономическая сеть
Указанная юлианская дата - полночь между этими календарными датами.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн BerezkaАвтор темы

  • Новичок
  • *
  • Сообщений: 17
  • Благодарностей: 0
    • Сообщения от Berezka
2457810.5
Да, однако если мы возьмём уже очевидное 26-е число - 2457810.6, то всё равно получим 25-е февраля.

Оффлайн BerezkaАвтор темы

  • Новичок
  • *
  • Сообщений: 17
  • Благодарностей: 0
    • Сообщения от Berezka
"Округление" надо было в кавычки взять :)
Указанная дата является границей между 25-ым и 26-ым февраля - к какому именно числу её относить вопрос скорее "филосовский"...
Ну вообще, если подумать, то ничего философского тут нет. Начало нового дня начинается ровно в 00:00:00, так как 24 часа, отведённые на предыдущие сутки в этот момент истекают полностью.

Оффлайн Toth

  • *****
  • Сообщений: 1 540
  • Благодарностей: 97
    • Сообщения от Toth
В Excel можно проверить. Дата Excel отличается от JD на 2415018.5. Ячейку B1 : формат ячеек установить дата.
Работает правильно по крайней мере после 1 марта 1900 года ( расхождения в високосности 1900-го года для разных настроек).

 

Оффлайн BerezkaАвтор темы

  • Новичок
  • *
  • Сообщений: 17
  • Благодарностей: 0
    • Сообщения от Berezka
В Excel можно проверить. Дата Excel отличается от JD на 2415018.5. Ячейку B1 : формат ячеек установить дата.
Работает правильно по крайней мере после 1 марта 1900 года ( расхождения в високосности 1900-го года для разных настроек).

Я что-то не так понял, но в экселе есть какая-то встроенная функция для определения юлианской даты и наоборот?

Оффлайн BerezkaАвтор темы

  • Новичок
  • *
  • Сообщений: 17
  • Благодарностей: 0
    • Сообщения от Berezka
Я разобрался в вопросе. Для тех, кому интересно опишу в чём была проблема. В алгоритме из википедии начальным параметром для нахождения календарной даты является не юлианская дата JD, а номер юлианской даты JDN.  Вообще, JDN - это просто целая часть от JD, не округлённая, а именно целая часть без остатка. Исходя из этого можно сделать вывод, что для нашего алгоритма без разницы для какого юлианского дня мы будем искать календарную дату: для 2415018.4 или для 2415018.6. Мы будем искать результат для JDN=2415018 в обоих случаях, и не важно, что 2415018.6 - это 26 февраля, а 2415018.4 - 25 февраля. В обоих случаях мы получим 25 февраля. Не знаю, насколько это корректно, но я поставил условие, что если дробная часть JD будет больше или равна 0.5, то к номеру юлианской даты будет прибавляться единица, таким образом мы сможем получить интересующую нас дату.

Как думаете, возникнут какие-либо проблемы при использовании данного костыля? На первый взгляд всё кажется нормальным.

Оффлайн BerezkaАвтор темы

  • Новичок
  • *
  • Сообщений: 17
  • Благодарностей: 0
    • Сообщения от Berezka
В предыдущем посте перепутал JD для 25-го и 26-го февраля: 2457810.4 и 2457810.6. Но сути это не меняет.

Оффлайн Deimos

  • Модератор
  • *****
  • Сообщений: 17 468
  • Благодарностей: 315
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Deimos
    • Белорусская любительская астрономическая сеть
Собственно, предыдущие вопросы и были направлены на выявление этого косяка.
Вообще сейчас модно MJD
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

Оффлайн Eddy_Em

  • *****
  • Сообщений: 754
  • Благодарностей: 20
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
А для чего нонче можно пользоваться юлианской датой? Разницу во времени между двумя событиями с ее помощью не получить (високосные секунды и високосные дни григорианского календаря она не учитывает), а вроде как изначально она для этого и задумывалась...
Я, кстати, своим аспирантам на лекции как-то указал, что ошибочно на графиках, где отображаются переменные короткопериодические события, восстановленные тем или иным методом по долгосрочным наблюдениям, использовать юлианскую дату: не учли пару високосных секунд — и совсем другое время колебаний пульсара получили. Ну или как минимум с оценкой СКО сильно промазали!

Оффлайн Toth

  • *****
  • Сообщений: 1 540
  • Благодарностей: 97
    • Сообщения от Toth
Вообще сейчас модно MJD
Это не сейчас такая мода появилась, это с появлением компьютеров, когда старались экономить на разрядности.

Оффлайн Toth

  • *****
  • Сообщений: 1 540
  • Благодарностей: 97
    • Сообщения от Toth
что ошибочно на графиках, где отображаются переменные короткопериодические события, восстановленные тем или иным методом по долгосрочным наблюдениям, использовать юлианскую дату: не учли пару високосных секунд — и совсем другое время колебаний пульсара получили.
Ну значит надо использовать не JD UTC, а JD TT, в которых нет никаких високосных секунд. В небесно-механических расчетах используют именно TT, или TDB, то что раньше называлось эфемеридное время.
JD ведь по разным шкалам можно считать.

Оффлайн Eddy_Em

  • *****
  • Сообщений: 754
  • Благодарностей: 20
  • САО РАН. Буково forever!
    • Сообщения от Eddy_Em
    • Я на гитхабе
Да, время — сложная штука. Без содержимого tzdata с точностью до секунд разницу времени пары событий и не рассчитаешь… Взять те же UNIX time: там високосные секунды тоже не учитываются никак, просто добавляется 60-я секунда, когда надо. В итоге t1-t2 все больше и больше от реальности отличается...

Оффлайн Deimos

  • Модератор
  • *****
  • Сообщений: 17 468
  • Благодарностей: 315
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Deimos
    • Белорусская любительская астрономическая сеть
Вообще сейчас модно MJD
Это не сейчас такая мода появилась, это с появлением компьютеров, когда старались экономить на разрядности.
Спасибо, кэп. Там сарказм был.
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/