Дата смерти неизвестна
- 1 year ago
- 0
- 0
Юлиа́нская да́та ( 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 366,138 [
] .Юлианский период был предложен Жозефом Скалигером для целей истории и хронологии . Поскольку историкам постоянно требуется работать с различными календарными системами и различными эпохами, Скалигер предложил хронологическую шкалу, к которой можно было бы приводить все исторические даты — юлианский период. Каждый год нумеровался тремя числами — индиктом (от 1 до 15), лунным циклом (от 1 до 19) и (от 1 до 28). На начало цикла 1 января 4713 года до н. э. все числа были равны 1. Длительность цикла в годах равняется 7980, что есть произведение 15·19·28. Через это время цикл повторяется. Конец первого юлианского периода придётся на 23 января 3268 года по григорианскому календарю .
В 1849 году для удобства астрономических расчётов Джон Гершель предложил все даты выражать через число дней, прошедших от начала цикла Скалигера. Началом дня Гершель выбрал полдень по меридиану Александрии , так как именно так отсчитывались дни в классическом Альмагесте Клавдия Птолемея . Использование полдня как границы суток удобно для датирования астрономических наблюдений, так как вся ночь попадает в один и тот же юлианский день.
К концу XIX века юлианский день постепенно начал использоваться в астрономической литературе. За начало дня обычно брали полдень по Гринвичскому меридиану , который в 1884 году получил статус международного.
Юлианскую дату можно применять для определения дня недели, для перевода дат одного календаря в даты другого, для определения промежутка времени между двумя датами и тому подобное.
Далее используются обозначения:
Вначале нужно вычислить промежуточные коэффициенты:
После этого можно вычислить номер юлианского дня:
Все деления целочисленные, то есть остатки деления отбрасываются (операция взятия целой части обозначена здесь и далее полуквадратными скобками вокруг дробей).
Формула справедлива для дат после 23 ноября −4713 года (4714 года до н. э.).
Вначале нужно вычислить промежуточные коэффициенты (они те же, что и для григорианского календаря):
После этого можно вычислить номер юлианского дня:
Для дат юлианского календаря существует также формула:
Все операции деления — целочисленные, то есть остатки деления отбрасываются.
Формулы справедливы начиная с −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 года до н. э., понедельник | 2460366.137789 | ||
Номер юлианского дня (JDN) | 12:00 1 января 4713 года до н. э., понедельник (день № 0) | JDN = floor (JD) | 2460366 | |
Сокращённая юлианская дата
( англ. Reduced Julian Day , RJD ) |
12:00 16 ноября 1858 года, вторник | RJD = JD − 2400000 | 60366.13779 | иногда используется астрономами |
Модифицированная юлианская дата
( англ. Modified JD , MJD ) |
00:00 17 ноября 1858 года, среда | MJD = JD − 2400000,5 | 60365.63779 | введён SAO в 1957; сменяется в полночь |
Округлённая юлианская дата
( англ. Truncated Julian Day , TJD ) |
00:00 24 мая 1968 года, пятница
00:00 10 ноября 1995 года, пятница |
TJD = JD − 2440000,5
TJD = (JD − 0,5) mod 10000 |
20365.63779
10365.63779 |
— определение, введённое
NASA
— определение NIST |
Дублинский юлианский день ( DJD ) | 12:00 31 декабря 1899 года, воскресенье | DJD = JD − 2415020 | 45346.13779 | введён IAU в 1955 |
Хронологический юлианский день
( англ. Chronological JD , CJD ) |
00:00 1 января 4713 года до н. э., понедельник | CJD = JD + 0,5 + часовой пояс | 2460366.6377894 (UT) | свой для каждого часового пояса ; дата меняется в полночь по местному времени |
Лилианский день | 00:00 15 октября 1582 года, пятница (день № 1) | floor(JD − 2299160,5) | 161205 | количество дней, прошедших с введения григорианского календаря 15 октября 1582 года; дата меняется в полночь по универсальному времени |
ANSI дата | 00:00 1 января 1601 года, понедельник (день № 1) | floor(JD − 2305812,5) | 154553 | по нему считаются даты COBOL |
Rata Die | 1 января 1 года, понедельник (день № 1) | floor(JD − 1721424,5) | 738941 | счёт дней нашей эры по григорианскому календарю |
UNIX-время | 1 января 1970 года, четверг | (JD − 2440587,5) × 86400 | 1708874305 | считается посекундно |
Там, где требуются вычисления с точностью до минут и более, указывается, относительно какой системы приводится значение юлианского дня. Если это UTC , соответствующий юлианский день обозначают JDUTC , если это часто использующееся в астрономии эфемеридное время , юлианский день обозначают JED .