儒略日与格里高利历的相互转换
格里高利历(即公历)转化儒略日
function [JD,MJD] = YMD_JD(Y,M,D,H,Min,Sec)
%格里高利历转换儒略日
%input:Y、M、D、H、Min、Sec
%output:JD儒略日、MJD约化儒略日
h=H+Min/60+Sec/3600;
if M<=2
y=Y-1;
m=M+12;
else
y=Y;
m=M;
JD=floor(365.25*(y+4716))+floor(30.6001*(m+1))+D+h/24-1537.5;
MJD=JD-2400000.5;
end
程序正常运行,运算结果正确 ,不存在问题。
儒略日转换格里高利历
function [Y,M,D,H,Min,Sec] = JD_YMD(jd)
%儒略日转换格里高利历
%output:Y、M、D、H、Min、Sec
%input:JD儒略日 和那个程序相互转换的时候,我发现好像少了一秒。
a=floor(jd+0.5);
b=a+1537;
c=floor((b-122.1)/365.25);
d=floor(365.25*c);
e=floor((b-d)/30.6001);
D=floor(b-d-floor(30.6001*e)+rem(jd+0.5,1));
h=(rem(jd+0.5,1))*24;
H=floor(h);
Min=floor((h-H)*60);
Sec=floor(((h-H)*60-Min)*60);
M=e-1-12*floor(e/14);
Y=c-4715-floor((7+M)/10);
end