Interested Article - Юлианская дата

Юлиа́нская да́та ( JD ) — астрономический способ измерения времени , при котором считается число суток, прошедших начиная с полудня понедельника , 1 января 4713 года до н. э. пролептического юлианского календаря или, что то же самое, 24 ноября 4714 года до н. э. пролептического григорианского календаря (соответственно, −4712 год и −4713 год по астрономическому счёту лет ). Первый день имел номер 0. С тех пор по настоящее время прошло немногим менее 2,5 миллиона дней. Даты сменяются в полдень UT или TT . Для точного обозначения времени применяют дробную часть, например, JD = 2451545,25 соответствует 18 часам 1 января 2000 года; 3 часа дня 2 августа 1942 года — JD 2430574,125; 13,5 июня 1944 года — JD 2431255,0.

Текущий юлианский день JD = 2 460 326,543 [ обновить ] .

История

Юлианский период

Юлианский период был предложен Жозефом Скалигером для целей истории и хронологии . Поскольку историкам постоянно требуется работать с различными календарными системами и различными эпохами, Скалигер предложил хронологическую шкалу, к которой можно было бы приводить все исторические даты — юлианский период. Каждый год нумеровался тремя числами — индиктом (от 1 до 15), лунным циклом (от 1 до 19) и (от 1 до 28). На начало цикла 1 января 4713 года до н. э. все числа были равны 1. Длительность цикла в годах равняется 7980, что есть произведение 15·19·28. Через это время цикл повторяется. Конец первого юлианского периода придётся на 23 января 3268 года по григорианскому календарю .

От юлианского периода к юлианскому дню

В 1849 году для удобства астрономических расчётов Джон Гершель предложил все даты выражать через число дней, прошедших от начала цикла Скалигера. Началом дня Гершель выбрал полдень по меридиану Александрии , так как именно так отсчитывались дни в классическом Альмагесте Клавдия Птолемея . Использование полдня как границы суток удобно для датирования астрономических наблюдений, так как вся ночь попадает в один и тот же юлианский день.

К концу XIX века юлианский день постепенно начал использоваться в астрономической литературе. За начало дня обычно брали полдень по Гринвичскому меридиану , который в 1884 году получил статус международного.

Вычисления

Юлианскую дату можно применять для определения дня недели, для перевода дат одного календаря в даты другого, для определения промежутка времени между двумя датами и тому подобное.

Вычисление юлианской даты по дате календаря

Далее используются обозначения:

  • — год. Для дат до нашей эры необходимо перевести год до н. э. в отрицательный год (например, 10 год до н. э. = −9 год);
  • — номер месяца, январь — 1, февраль — 2 и т. д.;
  • — день месяца;
  • — часы от 0 до 23;
  • — минуты от 0 до 59;
  • — секунды от 0 до 59, могут содержать дробную часть;
  • — номер юлианского дня ( англ. Julian Day Number ), который начинается в полдень числа, для которого производятся вычисления;
  • — юлианская дата, содержащая дробную часть.

Вычисление номера юлианского дня (JDN) по дате григорианского календаря

Вначале нужно вычислить промежуточные коэффициенты:

После этого можно вычислить номер юлианского дня:

Все деления целочисленные, то есть остатки деления отбрасываются (операция взятия целой части обозначена здесь и далее полуквадратными скобками вокруг дробей).

Формула справедлива для дат после 23 ноября −4713 года (4714 года до н. э.).

Вычисление номера юлианского дня (JDN) по дате юлианского календаря

Вначале нужно вычислить промежуточные коэффициенты (они те же, что и для григорианского календаря):

После этого можно вычислить номер юлианского дня:

Для дат юлианского календаря существует также формула:

Все операции деления — целочисленные, то есть остатки деления отбрасываются.

Формулы справедливы начиная с −4712 года (то есть для положительных значений JDN).

Вычисление юлианской даты (JD)

Для перехода к «полной» юлианской дате, содержащей дробную часть, можно воспользоваться формулой

При делении в этой формуле дробная часть не отбрасывается. Сутки не должны содержать високосной секунды (23:59:60).

Например, полдень (12 ч, 0 минут, 0 секунд) 1 января 2000 года соответствует JD = 2451545,0.

Вычисление дня недели по известной юлианской дате

День недели может быть вычислен как остаток от деления JDN на 7. При этом 0 соответствует понедельнику, 1 — вторнику и т. д.

JDN mod 7 0 1 2 3 4 5 6
День недели Пн Вт Ср Чт Пт Сб Вс

Программа для расчёта в Excel

    Sub Date_JDate()
    Dim dayy As Long, monthh As Long, yearr As Long, a As Long, y As Long, m As Long, jdate As Long
    Dim weekd
    weekd = Array("Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье")
    dayy = Cells(1, 1)
    monthh = Cells(1, 2)
    yearr = Cells(1, 3)
    a = Int((14 - monthh) / 12)
    y = yearr + 4800 - a
    m = monthh + 12 * a - 3
    jdate = dayy + Int((153 * m + 2) / 5) + Int(365 * y) + Int(y / 4) - Int(y / 100) + Int(y / 400) - 32045
    Cells(2, 1) = jdate
    Cells(3, 1) = weekd(jdate Mod 7)
    End Sub

Код для расчёта JD на Ruby для текущего момента

ruby -e 'puts (Time.now.getutc.to_f / 86400 + 2440587.5)'

Вычисление календарной даты по известной юлианской дате

Вычисление даты юлианского календаря по известному номеру юлианского дня (JDN)

Сначала нужно вычислить промежуточные коэффициенты:

После этого можно вычислить день, месяц и год по юлианскому календарю:

Все деления целочисленные, дробная часть отбрасывается. Поэтому 12·( m /10) в формуле для месяца не следует вычислять как (12 m )/10.

Вычисление даты григорианского календаря по известному номеру юлианского дня (JDN)

Сначала нужно вычислить промежуточные коэффициенты:

После этого можно вычислить день, месяц и год по григорианскому календарю:

Все деления целочисленные, дробная часть отбрасывается. Поэтому 12·( m /10) в формуле для месяца не следует вычислять как (12 m )/10.

Преобразование дат различных календарей

Преобразование UNIXTIME в дату и время григорианского календаря

Пример на языке СИ
void  unixtime_to_datetime ( unsigned long unixtime,
                             int *year, int *mon, int *mday, int *wday,
                             int *hour, int *min, int *sec,
                             unsigned long *jd, unsigned long *jdn )
{
        unsigned long time;
        unsigned long t1;
        unsigned long a;
        unsigned long b;
        unsigned long c;
        unsigned long d;
        unsigned long e;
        unsigned long m;

        *jd  = ((unixtime+43200)/(86400>>1)) + (2440587<<1) + 1;
        *jdn = *jd>>1;

        time = unixtime;   t1 = time/60;    *sec  = time - t1*60;
        time = t1;         t1 = time/60;    *min  = time - t1*60;
        time = t1;         t1 = time/24;    *hour = time - t1*24;

        *wday = *jdn%7;

        a = *jdn + 32044;
        b = (4*a+3)/146097;
        c = a - (146097*b)/4;
        d = (4*c+3)/1461;
        e = c - (1461*d)/4;
        m = (5*e+2)/153;
        *mday = e - (153*m+2)/5 + 1;
        *mon  = m + 3 - 12*(m/10);
        *year = 100*b + d - 4800 + (m/10);

        return;
}

Перевод дат юлианского календаря в даты григорианского календаря

  • Сначала нужно по дате юлианского календаря определить JDN ;
  • Потом, зная JDN , определить день, месяц и год по григорианскому календарю.

Перевод дат григорианского календаря в даты юлианского календаря

  • Сначала нужно по дате григорианского календаря определить JDN ;
  • Потом, зная JDN , определить день, месяц и год по юлианскому календарю.

Модификации и альтернативы юлианскому дню

Большое количество цифр в юлианском дне и смена дат в полдень во многих случаях неудобны, поэтому разработано большое количество систем счёта дней, аналогичных юлианскому дню.

Наименование Начало Расчёт Сейчас Примечание
Юлианская дата (JD) 12:00 1 января 4713 года до н. э., понедельник 2460326.54316
Номер юлианского дня (JDN) 12:00 1 января 4713 года до н. э., понедельник (день № 0) JDN = floor (JD) 2460326
Сокращённая юлианская дата
( англ. Reduced Julian Day , RJD )
12:00 16 ноября 1858 года, вторник RJD = JD − 2400000 60326.54316 иногда используется астрономами
Модифицированная юлианская дата
( англ. Modified JD , MJD )
00:00 17 ноября 1858 года, среда MJD = JD − 2400000,5 60326.04316 введён SAO в 1957; сменяется в полночь
Округлённая юлианская дата
( англ. Truncated Julian Day , TJD )
00:00 24 мая 1968 года, пятница
00:00 10 ноября 1995 года, пятница
TJD = JD − 2440000,5
TJD = (JD − 0,5) mod 10000
20326.04316
10326.04316
— определение, введённое NASA
— определение NIST
Дублинский юлианский день ( DJD ) 12:00 31 декабря 1899 года, воскресенье DJD = JD − 2415020 45306.54316 введён IAU в 1955
Хронологический юлианский день
( англ. Chronological JD , CJD )
00:00 1 января 4713 года до н. э., понедельник CJD = JD + 0,5 + часовой пояс 2460327.0431597 (UT) свой для каждого часового пояса ; дата меняется в полночь по местному времени
Лилианский день 00:00 15 октября 1582 года, пятница (день № 1) floor(JD − 2299160,5) 161166 количество дней, прошедших с введения григорианского календаря 15 октября 1582 года; дата меняется в полночь по универсальному времени
ANSI дата 00:00 1 января 1601 года, понедельник (день № 1) floor(JD − 2305812,5) 154514 по нему считаются даты COBOL
Rata Die 1 января 1 года, понедельник (день № 1) floor(JD − 1721424,5) 738902 счёт дней нашей эры по григорианскому календарю
UNIX-время 1 января 1970 года, четверг (JD − 2440587,5) × 86400 1705453329 считается посекундно

Там, где требуются вычисления с точностью до минут и более, указывается, относительно какой системы приводится значение юлианского дня. Если это UTC , соответствующий юлианский день обозначают JDUTC , если это часто использующееся в астрономии эфемеридное время , юлианский день обозначают JED .

См. также

Примечания

  1. В гражданском счёте первому году н. э. предшествует первый год до н. э. В астрономическом счёте первому году н. э. предшествует нулевой год .
  2. «Новое сочинение об исправлении хронологии» («Opus novum de emendatione temporum», Париж, 1583; исправленное издание — Франкфурт, 1593)
  3. «Сокровищница хронологии» («Thesaurus temporum», Лейден, 1606; Амстердам, 1629)
  4. Noerdlinger, 1995.

Литература

Ссылки

Источник —

Same as Юлианская дата