-
Notifications
You must be signed in to change notification settings - Fork 1
/
gre2mjd.m
62 lines (49 loc) · 1.41 KB
/
gre2mjd.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This function was provided to Modurodoluwa Okeowo by Hygonki Lee (PhD)
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function dmjd = gre2mjd(iDATE,fsec)
% Convert gregorian to modified julian date
% Updated by: Chang-Ki Hong
% Last updated: 03/01/2005
% SPIN Lab/CEEGS/The Ohio State Univ.
% mjd = gre2mjd([2000 1 1 1 1 1],0)
if(iDATE(1) < 100 & iDATE(1) > 80)
iyyyy = iDATE(1) + 1900;
elseif(iDATE(1) < 80 & iDATE(1) >= 0)
iyyyy = iDATE(1) + 2000;
else
iyyyy = iDATE(1);
end;
if(iDATE(2) > 2)
ijy = iyyyy;
ijm = iDATE(2) + 1;
else
ijy = iyyyy - 1;
ijm = iDATE(2) + 13;
end;
aj = double(floor(ijy / 100.0));
dmjd(1) = (double(floor(365.25*ijy)) + double(floor(30.6001*ijm)) + ...
double(iDATE(3)) - 679006.0 + 2.0 - aj + double(floor(0.25*aj)))*86400.0;
dmjd(1) = dmjd(1) + iDATE(4)*3600.0 + iDATE(5)*60.0 + double(iDATE(6));
dmjd(2) = fsec;
ti1 = double(floor(dmjd(1)));
tf1 = dmjd(1) - ti1;
ti2 = double(floor(dmjd(2)));
tf2 = dmjd(2) - ti2;
ti1 = ti1 + ti2;
tf1 = tf1 + tf2;
it = tf1;
tf1 = tf1 - it;
ti1 = ti1 + it;
if(ti1 >= 1.0 & tf1 < 0.0)
ti1 = ti1 - 1.0;
tf1 = tf1 + 1.0;
end;
if(ti1 <=-1.0 & tf1 > 0.0)
ti1 = ti1 + 1.0;
tf1 = tf1 - 1.0;
end
dmjd(1) = ti1;
dmjd(2) = tf1;
% End of algorithm