“儒略日(Julian Day)”与“儒略历(Julian Calendar/Julian Date)”不同。 儒略历是 Julius Caesar在45 BC发明的。一年有12个月,大月31日,小月30日,平年2月有28,日闰年2月则有29日,平均每年有365.25日。到1582年10月由格勒哥里十三世(Gregory XIII)改革成为格勒哥里历(Gregorian calendar),取消1582年10月5日至1582年10月14日这10日及取消400年内00年尾的3个闰年,使一年的平均日数变成365.2425日,更接近于准确的回归年365.2422日。
儒略日是由Joseph Justus Scaliger(1540-1609)发明的,名称可能是取自他的父亲Julius Caesar Scaliger(1484-1558)。Scaliger尝试将所有历史日期用一个系统表述。为被免用负数表达过去的年份,他选择一个年代久远的年份作为儒略日的起点。他依据以下3种周期订定出儒略日的儒略周期(Julian Cycle)及起点。
1. 28年为一周期的太阳周期(solar cycle) : 经过一周期,星期的日序与月的日序会重复。
2. 19年为一周期的朔望周期(Metonic cycle) :经过一周期,阴历月年的日序和月相重复。周期内用 Golden Number 来表示序号。
3. 15年为一周期的古罗马律会(indiction cycle) :此为罗马皇帝君士坦丁所颁的课税周期,每15年重订财产价值以供课税。
Scaliger将这三个周期的最小共倍数(28 x 19 x 15=7980)作为儒略日(Julian Day)的周期。至于儒略日的起点Scaliger选择了一年使这三个周期均等于1。他知道1BC 这一年的Solar cycle number等于9,Metonic cyle number Golden number 等于1,及Indiction cycle number等于3。他发现(1,1,1)发生在公元前4713年1月1日,就选择了一年作为起点。天文学家经常用儒略日来赋予每天一个唯一的数字,方便追朔日期。 这就是所谓的儒略日(JD)。通常天文及航海以中午12时为一日的开始,儒略日亦是从世界时(Universal Time) 中午12时开始。 JD0指定为4713 BC 一月一日正午UTC到4713 BC一月二日正午UTC的24小时。
儒略日数的计算(Julian Day Numbers)
儒略日起始时间为4713 BC,公元后的年数(AD/CE)可以简单地加上4713成为儒略年数(Julian Period)。例如2003 AD年会得出6716。公元前(BC/BCE)要表示成负数的公元后的年数。因为公元前1年(1BC)等于0AD,因此要将BC/BCE的年数减1然后取负值。例如868BC年会得出 –867AD。但是如果4713 BC不是第一年而是设为0年,计算时会简化,对于BC/BCE的年只须加4712而不是4713。例如2003AD年会得出6715。这种计法称为Scalinger Year。另外在计算儒略日数时年是以3月1日开始,一月及二月被当作上一年的第13及14个月。
首先将年份(Scalinger Year)徐4。例如2003年2月15日的Scalinger Year是2002 (一月及二月被当作上一年的第13及14个月) + 4712 = 6714,6714/4 = 1678余2,意思是4年循环的儒略历有1678个而本循环(0-3)中等于2。暂时不理闰年所加的日数,儒略历日数= 1461 x 1678 + 2 x 365 = 2,452,288。
世纪
|
修正 |
1582 |
-10 |
1600 |
|
1700 |
-11 |
1800 |
-12 |
1900 |
-13 |
2000 |
其它儒略日数(Julian Day Numbers)计算方法
计算儒略日数(Julian Day Numbers)还有许多其它公式,现列举于下作参考。
公式一
假设 a = (14-月份)/12
y = 年 + 4800 - a
m = 月份 + 12a - 3
d = 日
格勒哥里历(Gregorian calendar)的日期:
JD=d+(153m+2)/5 + 365y + y/4 – y/100 + y/400 - 32045
儒略历(Julian calendar)的日期:
JD = day + (153m+2)/5 + 365y + y/4 - 32083
公式二
假设 y = 年份
m = 月份
d = 日
JD = (1461 * (y + 4800 + (m - 14) / 12)) / 4 +
(367 * (m - 2 - 12 * ((m - 14) / 12) )) / 12 -
(3 * (( y + 4900 + (m - 14) / 12 ) / 100)) / 4 +
d - 32075
由儒略日数(Julian Day Numbers)转换成格勒哥里历(Gregorian calendar)
L = JD + 68569
N = ( 4 * L ) / 146097
L = L - ( 146097 *N + 3 ) / 4
I = ( 4000 * ( L + 1 ) ) / 1461001
L = L - ( 1461 * I ) / 4 + 31
J = ( 80 * L ) / 2447
D = L - ( 2447 * J ) / 80 = Day
L = J / 11
M = J + 2 - ( 12 *L ) = Month
Y = 100 * ( N - 49 ) + I + L = Year
公式三
假设 y = 年份
m = 月份
d = 日
1. 如果 m 小于于或等于2, m = m + 12 而 y = y – 1
2. c = 2 – y/1000 + y/400 (乘或徐数时,取整数,舍弃点数)
3. JD = 1461 * ( y+ 4716 ) / 4 + 153 * (m + 1) / 5 + d + c –1524.5 (乘或徐数时,取整数,舍弃点数)
由儒略日数(Julian Day Numbers)转换成格勒哥里历(Gregorian calendar)
Z = JD+0.5
W = (Z – 1867216.25) / 36524.25
X = W / 4
A = Z+1+W–X
B = A+1524
C = (B–122.1) / 365.25
D = 365.25xC
E = (B–D) / 30.6001
F = 30.6001 * E
日 = B – D– F
月份 = E – 1 or E – 13 (要小于或等于12的数字)
年份 = C–4715(如果月份是一或二月)其它月份则用C– 4716
公式四
假设 Y = 年份
M = 月份
D = 日
JD = (D - 32075 + 1461 * (Y + 4800 + (M - 14) / 12) / 4 + 367 * (M - 2 - (M - 14) / 12 * 12 ) / 12 - 3 * ((Y + 4900 + (M - 14) / 12) / 100) / 4) (乘或徐数时,取整数,舍弃点数)
公式五
假设 y = 年份
m = 月份
d = 日
如 m > 2 ; m = m – 3
否则 m = m + 9 ; y = y - 1
c = y / 100
ya = y - 100 * c
JD = (146097 * c) / 4 + (1461 * ya) / 4 + (153 * m + 2) / 5 + d + 1721119 (乘或徐数时,取整数,舍弃点数)
简化儒略日数(Modified Julian Day Number)
从过去的150年到现在,儒略日的数值起码是7位数字。1957年Smithsonian Astrophysical Observatory将儒略日数值减去2,400,000.5并命名为简化儒略日数 (Modified Julian Day Number),简称MJD。简化JD有两个目的:
1) 日期由午夜而不是中午开始。
2) 儒略日的数值由7位数字减为5位数字,节省计算机储存空间。
3)JD 2,400,000是1858年11月16日。MJD 2 = 0相当于1858年11月17日的凌晨。
利连日数(Lilian Day Number)
概念上与儒略日一样,它是由格勒哥里历(Gregorian calendar)改革的第一日作起点,即1582年10月15日。利连日数(Lilian Day Number)是以天文学家Aloysius Lilius命名,他是天主教教皇格勒哥里十三世(Gregory XIII)的历法顾问,亦是格勒哥里历(Gregorian calendar)的主要发明者之一。
利连日数(LJD)与儒略日数(JD)有如下的关系 :
LDN = JDN - 2,299,160
Julian day - Definition |
The Julian day or Julian day number (JDN) is the number of days that have elapsed since 12 noon Greenwich Mean Time (UT or TT) on Monday, January 1, 4713 BC (in the proleptic Julian calendar; or November 24, 4714 BC in the proleptic Gregorian calendar). The Julian day system was intended to provide astronomers with a single system of dates that could be used when working with different calendars and to unify different historical chronologies.
Julian DateThe Julian Date (JD) is the Julian day number plus the decimal fraction of the day that has elapsed since noon. Historical Julian Dates were recorded relative to GMT or Ephemeris Time, but the International Astronomical Unionnow recommends that Julian Dates be specified in Terrestrial Time, and that when necessary to specify Julian Dates using a different time scale, that the time scale used be indicated when required, such as JD(UT1). The fraction of the day is found by converting the number of hours, minutes, and seconds after noon into the equivalent decimal fraction. The term Julian date is also used to refer to:
The use of Julian date to refer to the day-of-year (ordinal date) is usually considered to be incorrect. Alternatives
Because the starting point is so long ago, numbers in the Julian day can be quite large and cumbersome. A more recent starting point is sometimes used, for instance by dropping the leading digits, in order to fit into limited computer memory with an adequate amount of precision.
HistoryThe Julian day number is based on the Julian Period proposed by Joseph Scaliger in 1583, at the time of theGregorian calendar reform, but it is the multiple of three calendar cycles used with the Julian calendar:
Its epoch falls at the last time when all three cycles were in their first year together — Scaliger chose this because it pre-dated all historical dates. Note: although many references say that the "Julian" in "Julian day" refers to Scaliger's father, Julius Scaliger, in the introduction to Book V of his Opus de Emendatione Tempore (Work on the Emendation of Time) he states: "Iulianum vocauimus: quia ad annum Iulianum dumtaxat accomodata est" which translates more or less as "We call this Julian merely because it is accommodated to the Julian year". This "Julian" refers to Julius Caesar, who introduced the Julian calendar in 46 BC. In his book Outlines of Astronomy, first published in 1849, the astronomer John Herschel wrote:
Astronomers adopted Herschel's Julian Days in the late 19th century, but using the meridian of Greenwich instead of Alexandria, after the former was made the Prime Meridian by international conference in 1884. This has now become the standard system of Julian days. Julian days are typically used by astronomers to date astronomicalobservations, thus eliminating the complications resulting from using standard calendar periods like eras, years, months, or weeks. Julian days begin at noon because when Herschel recommended them, the astronomical day began at noon (it did so until 1925). The astronomical day had begun at noon ever since Ptolemy chose to begin the days in his astronomical periods at noon. He chose noon because the transit of the Sun across the observer's meridian occurs at the same apparent time every day of the year, unlike sunrise or sunset, which vary by several hours. Midnight was not even considered because it could not be accurately determined using water clocks. Nevertheless, he double dated most nighttime observations with both Egyptian days beginning at sunrise and Babylonian days beginning at sunset. Thus the astronomical day did not begin at noon to allow all observations of a single night to be in a single day. CalculationThe Julian day number can be calculated using the following formulas: All divisions (except for JD) are integer divisions, meaning the remainder in the division is discarded. The months January to December are 1 to 12. Astronomical year numbering is used, thus 1 BC is 0, 2 BC is ?1, and 4713 BC is ?4712. For a date in the Gregorian calendar (at noon): For a date in the Julian calendar (at noon): For the full Julian Date (divisions are real numbers): The day of the week can be determined from the Julian day number by calculating it modulo 7, where 0 means Monday.
See also
References
External links
|
Modified Julian Day与年月日时分秒转换C++和MATLAB代码
C++转换函数:
年月日时分秒(支持小数秒)与Modified Julian Day互转
double YmdToMjd(int iYear, int iMonth, int iDay, int iHour, int iMin, double dSec);
void MJdToYmd(double dMJD, int *piYear, int *piMonth,int *piDay, int *piHour,
int* piMin, double* pdSec);
MATLAB转换函数:
年月日时分秒(支持小数秒)与Modified Julian Day互转
mjd--Modified Julian Day,可输入数组
function greDate = wzjMjdToGregorianDate(mjd)
greDate---年月日时分秒向量,可输入数组
function mjd = wzjGregorianDateToMjd(greDate)
UTC与当地时互转
utcArr--UTC,可输入数组
function LT = wzjUTCToLT(utcArr,lonArr)
lonArr--当地经度(0~360或-180~180均可),可输入数组
function UTC = wzjLTToUTC(ltArr,lonArr)
Modified Julian Day 年 月 日 时 分 秒
54783.5311154071 2008 11 13 12 44 48.3712005615234
54783.5311443393 2008 11 13 12 44 50.8709030151367
54783.5311725482 2008 11 13 12 44 53.3081970214844
54783.5312007571 2008 11 13 12 44 55.7453994750977
54783.5312296894 2008 11 13 12 44 58.2452011108398
54783.5312578983 2008 11 13 12 45 0.682403564453125
54783.5312868305 2008 11 13 12 45 3.18219757080078
54783.5313150394 2008 11 13 12 45 5.61940002441406
54783.5313439716 2008 11 13 12 45 8.11920166015625
54783.5313721805 2008 11 13 12 45 10.5563964843750
54783.5314011127 2008 11 13 12 45 13.0560989379883
54783.5314293216 2008 11 13 12 45 15.4934005737305
54783.5314575305 2008 11 13 12 45 17.9306030273438
54783.5314864628 2008 11 13 12 45 20.4303970336914
54783.5315146717 2008 11 13 12 45 22.8675994873047
54783.5315436039 2008 11 13 12 45 25.3674011230469
54783.5315718128 2008 11 13 12 45 27.8046035766602
54783.5316000217 2008 11 13 12 45 30.2418975830078
54783.5316289539 2008 11 13 12 45 32.7416000366211
54783.5316571628 2008 11 13 12 45 35.1789016723633
54783.5316860950 2008 11 13 12 45 37.6785964965820
54783.5317143040 2008 11 13 12 45 40.1158981323242
54783.5317432362 2008 11 13 12 45 42.6156005859375
54783.5317714451 2008 11 13 12 45 45.0529022216797
54783.5317996540 2008 11 13 12 45 47.4900970458984
54783.5318285862 2008 11 13 12 45 49.9898986816406
54783.5318567951 2008 11 13 12 45 52.4271011352539
54783.5318857273 2008 11 13 12 45 54.9268035888672
54783.5319139362 2008 11 13 12 45 57.3640975952148
54783.5319421451 2008 11 13 12 45 59.8013992309570
http://www.csgnetwork.com/julianmodifdateconv.html