1. ВНИМАНИЕ! В течении пары дней +- будет переезд форума на более защищённый сервер. Возможны периодические перебои в работе.

UT, UTC, Юлианский день

Тема в разделе "Общие вопросы", создана пользователем Александр Устинов, 16 янв 2009.

  1. Александр Устинов

    Александр Устинов Форумчанин

    На этом сайте есть пара ошибок в алгоритме расчета календарной даты по юлианскому дню, так что, кто будет использовать, будьте повнимательнее.
    А сделал расчет в два этапа:
    сначала, рассчитал календарную дату,
    а потом по алгоритму, приведенному на этом же сайте, рассчитал номер дня в году.
    Теперь с представлением этой даты в нужном формате мучаюсь:)
    Никому не встречался прямой алгоритм "модифицированный юлианский день - год и день в году"?
     
  2. Поиск по слову mjd2doy вывел на изящную программку японского автора KAMENO Seiji. Разбраться с алгоритмом не составит труда.
     
  3. Александр Устинов

    Александр Устинов Форумчанин

    Оффтоп
    Да уж:)
     
  4. Ну хорошо, напишу Вам алгоритм по программе.

    Дан модифицированный юлианский день mjd. Найти год year и день года doy.
    1) Находим количество дней от 1901/1/0:
    day = mjd - 15384
    2) Находим день года и год:
    doy = д.ч.[д.ч.[day/1461]/365]
    year= 1901 + 4*ц.ч.[day/1461] + ц.ч.[д.ч.[day/1461]/365]
    Здесь и далее ц.ч.[] - опереация взятия целой части, д.ч.[] - опереация взятия дробной части
    3) Если год високосный, т.е. ц.ч.[д.ч.[(day-1)/1461]/365] = 3, то скорректировать день:
    doy = д.ч.[day/1461] - 3*365
    4) Если день получился равным нулю (последний день года), скорректировать день и год:
    doy = 365 для невисокосного года и doy = 366 для високосного;
    year = year-1
    Алгоритм работает медду 1901 и 2099гг., т.е. 15384 < mjd < 88433

    Надеюсь, перевёл правильно (на С я не пишу). Вопросы по алгоритму - к автору ::smile24.gif:: .
     
  5. Александр Устинов

    Александр Устинов Форумчанин

    Оффтоп
    Я тоже. Я на Fortran пишу.


    88433? Это модифицированный юлианский день 31 (30) декабря 2100 года, по-моему.
     
  6. stout

    stout Форумчанин

  7. Оффтоп

    Ну вот и описка ::dry.gif:: Конечно, до 2099г. Исправил.
     
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление