1 |
gforget |
1.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; |