Юлиа́нская да́та (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=2458502.499363
Юлианский период был предложен Скалигером для целей истории и хронологии. Поскольку историкам постоянно требуется работать с различными календарными системами и различными эпохами, Скалигер предложил хронологическую шкалу, к которой можно было бы приводить все исторические даты — юлианский период. Каждый год нумеровался тремя числами — индиктом (от 1 до 15), лунным циклом (от 1 до 19) и солнечным циклом[en] (от 1 до 28). На начало цикла 1 января 4713 до н. э. все числа были равны 1. Длительность цикла в годах равняется 15·19·28, то есть 7980 годам, через это время цикл повторяется. Конец первого юлианского периода придётся на 23 января 3268 года по григорианскому календарю.
В 1849 году для удобства астрономических расчетов Гершель предложил все даты выражать через число дней, прошедших от начала цикла Скалигера. Началом дня Гершель выбрал полдень по меридиану Александрии, так как именно так отсчитывались дни в классическом Альмагесте Клавдия Птолемея. Использование полдня как границы суток удобно для датирования астрономических наблюдений, так как вся ночь попадает в один и тот же юлианский день.
К концу XIX века юлианский день постепенно начал использоваться в астрономической литературе. За начало дня обычно брали полдень по Гринвичскому меридиану, который в 1884 году получил статус международного.
Юлианскую дату можно применять для определения дня недели, для перевода дат одного календаря в даты другого, для определения промежутка времени между двумя датами и тому подобное.
Далее используются обозначения:
Вначале нужно вычислить промежуточные коэффициенты:
После этого можно вычислить номер юлианского дня:
Все деления целочисленные, то есть остатки деления отбрасываются.
Формула справедлива для дат после 23 ноября −4713 г.
Вначале нужно вычислить промежуточные коэффициенты (они те же, что и для григорианского календаря):
После этого можно вычислить номер юлианского дня:
Для дат юлианского календаря существует также формула:
Все операции деления — целочисленные, то есть остатки деления отбрасываются.
Формулы справедливы начиная с −4712 года (то есть для положительных значений JDN).
Для перехода к «полной» юлианской дате, содержащей дробную часть, можно воспользоваться формулой:
При делении в этой формуле дробная часть не отбрасывается. Сутки не должны содержать високосной секунды (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 |
---|---|---|---|---|---|---|---|
День недели | Пн | Вт | Ср | Чт | Пт | Сб | Вс |
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
ruby -e 'puts (Time.now.getutc.to_f / 86400 + 2440587.5)'
Сначала нужно вычислить промежуточные коэффициенты:
После этого можно вычислить день, месяц и год по юлианскому календарю:
Все деления целочисленные, дробная часть отбрасывается. Поэтому 12*(m/10) в формуле для месяца не следует вычислять как (12*m)/10.
Сначала нужно вычислить промежуточные коэффициенты:
После этого можно вычислить день, месяц и год по григорианскому календарю:
Все деления целочисленные, дробная часть отбрасывается. Поэтому 12*(m/10) в формуле для месяца не следует вычислять как (12*m)/10.
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;
}
Большое количество цифр в юлианском дне и смена дат в полдень во многих случаях неудобны, поэтому разработано большое количество систем счёта дней, аналогичных юлианскому дню
Наименование | Начало | Расчёт | Сейчас | Примечание |
---|---|---|---|---|
Юлианская дата (JD) | 12:00 1 января, 4713 до н. э., понедельник | 2458502.499363 | ||
Номер юлианского дня (JDN) | 12:00 1 января, 4713 до н. э., понедельник (день № 0) | JDN = floor(JD) | 2458502 | |
Сокращённая юлианская дата (англ. Reduced Julian Day, RJD) |
12:00 16 ноября, 1858, вторник | RJD = JD − 2400000 | 58502.49936 | иногда используется астрономами |
Модифицированная юлианская дата (англ. Modified JD, MJD) |
00:00 17 ноября, 1858, среда | MJD = JD − 2400000,5 | 58501.99936 | введён SAO в 1957; сменяется в полночь |
Округлённая юлианская дата (англ. Truncated Julian Day, TJD) |
00:00 24 мая, 1968, пятница 00:00 10 ноября, 1995, пятница |
TJD = JD − 2440000,5 TJD = (JD − 0,5) mod 10000 |
18501.99936 8501.99936 |
— определение, введённое NASA[2] — определение NIST |
Дублинский юлианский день (DJD) | 12:00 31 декабря, 1899, воскресенье | DJD = JD − 2415020 | 43482.49936 | введен IAU в 1955 |
Хронологический юлианский день (англ. Chronological JD, CJD) |
00:00 1 января, 4713 до н. э., понедельник | CJD = JD + 0,5 + часовой пояс | 2458502.9993634 (UT) | свой для каждого часового пояса; дата меняется в полночь по местному времени |
Лилианский день | 00:00 15 октября 1582, пятница (день № 1) | floor(JD − 2299160,5) | 159341 | количество дней, прошедших с введения григорианского календаря 15 октября 1582 года; дата меняется в полночь по универсальном времени |
ANSI дата | 00:00 1 января 1601, понедельник (день № 1) | floor(JD − 2305812,5) | 152689 | по нему считаются даты COBOL |
Rata Die | 1 января, 1, понедельник (день № 1) | floor(JD − 1721424,5) | 737077 | счёт дней нашей эры по григорианскому календарю |
UNIX-время | 1 января, 1970, четверг | (JD − 2440587,5) × 86400 | 1547855945 | считается посекундно |
Там, где требуются вычисления с точностью до минут и более, указывается, относительно какой системы приводится значение юлианского дня. Если это UTC, соответствующий юлианский день обозначают JDUTC, если это часто использующееся в астрономии эфемеридное время, юлианский день обозначают JED.
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .