1 |
function [j]=jul_0h(y,m,d,h) |
2 |
% JULIAN Converts Gregorian calendar dates to corresponding |
3 |
% Julian day numbers. Although the formal definition |
4 |
% holds that Julian days start and end at noon, here |
5 |
% Julian days start and end at midnight. |
6 |
% |
7 |
% In this convention, Julian day 2440000 began at 0000 hours, May 23, 1968. |
8 |
% |
9 |
% |
10 |
% Usage: [j]=jul_0h(y,m,d,h) or [j]=jul_0h([y m d hour min sec]) |
11 |
% ************************************************************ |
12 |
% |
13 |
% d.... day (1-31) component of Gregorian date |
14 |
% m.... month (1-12) component |
15 |
% y.... year (e.g., 1979) component |
16 |
% j.... decimal Julian day number |
17 |
% h.... decimal hours (assumed 0 if absent) |
18 |
% |
19 |
% ************************************************************ |
20 |
% recoded for MATLAB by Rich Signell, 5-15-91 |
21 |
% |
22 |
|
23 |
% Revised T.Terre 10/05/2001 |
24 |
|
25 |
if nargin==3, |
26 |
h=0.; |
27 |
elseif nargin==1, |
28 |
h=y(:,4) + (y(:,5) + y(:,6)/60)/60; |
29 |
d=y(:,3); |
30 |
m=y(:,2); |
31 |
y=y(:,1); |
32 |
end |
33 |
mo=m+9; |
34 |
yr=y-1; |
35 |
i=(m>2); |
36 |
mo(i)=m(i)-3; |
37 |
yr(i)=y(i); |
38 |
c = floor(yr/100); |
39 |
yr = yr - c*100; |
40 |
j = floor((146097*c)/4) + floor((1461*yr)/4) + ... |
41 |
floor((153*mo +2)/5) +d +1721119; |
42 |
|
43 |
% If you want julian days to start and end at noon, |
44 |
% replace the following line with: |
45 |
% j=j+(h-12)/24; |
46 |
|
47 |
% |
48 |
% Ajout TT pour pb de conversion 07 00 00 == retourne en 06 59 60 ? |
49 |
% Ca permet d'avoir la date juste a la dizaine de us pres. |
50 |
% 10/05/2001 |
51 |
% |
52 |
fac = 10^9; |
53 |
dh = round(fac*h/24+0.5)/fac; |
54 |
|
55 |
% Fin ajout TT |
56 |
|
57 |
j=j+dh; |