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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

Текущий юлианский день JD=2456985.280741

Содержание

История[править | править вики-текст]

Юлианский период[править | править вики-текст]

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

От юлианского периода к юлианскому дню[править | править вики-текст]

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

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

Вычисления[править | править вики-текст]

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

Вычисление юлианской даты по дате календаря[править | править вики-текст]

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

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

Вычисление номера юлианского дня (JDN) по дате григорианского календаря[править | править вики-текст]

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

\begin{matrix}a & = & \frac{14 - month}{12}\ \\ \\y & = & year + 4800 - a \\ \\m & = & month + 12a - 3 \\\end{matrix}

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

JDN = day+\frac{153m+2}{5}+365y+\frac{y}{4}-\frac{y}{100}+\frac{y}{400}-32045

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

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

Вычисление номера юлианского дня (JDN) по дате юлианского календаря[править | править вики-текст]

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

\begin{matrix}a & = & \frac{14 - month}{12}\ \\ \\y & = & year + 4800 - a \\ \\m & = & month + 12a - 3 \\\end{matrix}

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

\begin{matrix}JDN & = & day + \frac{153m + 2}{5}\ + 365y + \frac{y}{4}\ - 32083\end{matrix}.

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

JDN = 367year-\frac {7 \left  (year + \frac{\left(month+9\right)}{12} \right )}{4}+\frac{285month}{9}+day-730530

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

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

Вычисление юлианской даты (JD)[править | править вики-текст]

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

\begin{matrix}JD & = & JDN + \frac{hour - 12}{24} + \frac{minute}{1440} + \frac{second}{86400}\end{matrix}.

При делении в этой формуле дробная часть не отбрасывается. Сутки не должны содержать високосной секунды (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

Вычисление календарной даты по известной юлианской дате[править | править вики-текст]

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

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

\begin{matrix}c & = & JDN + 32082\end{matrix}.

\begin{matrix}d & = & \frac{4c + 3}{1461} \end{matrix}.

\begin{matrix}e & = & c - \frac{1461d}{4} \end{matrix}.

\begin{matrix}m & = & \frac{5e + 2}{153} \end{matrix}.

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

\begin{matrix}day & = & e - \frac{153m + 2}{5}\ + 1\end{matrix}.

\begin{matrix}month & = & m + 3 - 12\frac{m}{10} \end{matrix}.

\begin{matrix}year & = & d - 4800 + \frac{m}{10} \end{matrix}.

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

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

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

\begin{matrix}a & = & JDN + 32044\end{matrix}.

\begin{matrix}b & = & \frac{4a + 3}{146097} \end{matrix}.

\begin{matrix}c & = & a - \frac{146097b}{4} \end{matrix}.

\begin{matrix}d & = & \frac{4c + 3}{1461} \end{matrix}.

\begin{matrix}e & = & c - \frac{1461d}{4} \end{matrix}.

\begin{matrix}m & = & \frac{5e + 2}{153} \end{matrix}.

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

\begin{matrix}day & = & e - \frac{153m + 2}{5}\ + 1\end{matrix}.

\begin{matrix}month & = & m + 3 - 12\frac{m}{10} \end{matrix}.

\begin{matrix}year & = & 100b + d - 4800 + \frac{m}{10} \end{matrix}.

Все деления целочисленные, дробная часть отбрасывается. Поэтому 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 до н. э., Пн 2456985.280741
Номер юлианского дня (JDN) 12:00 1 января, 4713 до н. э., Пн (день № 0) JDN = floor (JD) 2456985
Сокращённая юлианская дата (англ. Reduced Julian Day, сокр. RJD) 12:00 16 ноября, 1858, Вт RJD = JD − 2400000 56985.28074 Иногда используется астрономами
Модифицированная юлианская дата (MJD) 00:00 17 ноября, 1858, Ср MJD = JD − 2400000,5 56984.78074 Введен SAO в 1957, сменяется в полночь.
Округлённая юлианская дата (англ. Truncated Julian Day, сокр. TJD) 00:00 24 мая, 1968, Пт
00:00 10 ноября, 1995, Вт.
TJD = JD − 2440000,5
TJD = (JD − 0,5) mod 10000
16984.78074
6984.78074
- Определение, введённое NASA[2]
 — определение NIST
Дублинский юлианский день (DJD) 12:00 31 декабря, 1899, Вс. DJD = JD − 2415020 41965.28074 Введен IAU в 1955
Хронологический юлианский день (CJD) 00:00 1 января, 4713 до н. э., Пн CJD = JD + 0,5 + часовой пояс 2456985.7807407 (UT) Свой для каждого часового пояса; Дата меняется в полночь по местному времени
Лилианский день 00:00 15 октября 1582, Friday (день № 1) floor (JD − 2299160,5) 157824 Количество дней, прошедших с введения 15 октября 1582 года григорианского календаря. Дата меняется в полночь по универсальном времени.
ANSI Дата 00:00 1 января 1601, Пн (день № 1) floor (JD − 2305812,5) 151172 По нему считаются даты COBOL
Rata Die 1 января, 1, Пн (день № 1) floor (JD − 1721424,5) 735560 Счёт дней нашей эры по григорианскому календарю
Время UNIX 1 января, 1970, Вт. (JD − 2440587,5) × 86400 1416768256 Считается посекундно

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

Источники[править | править вики-текст]

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

  1. В гражданском счёте — перед первым годом н. э. считается первый год до н. э. В астрономическом счёте — первому году н. э. предшествует нулевой год.
  2. Noerdlinger, 1995.