儒略日和普通日期之间的转换代码
(2016-03-24 21:06:46)
标签:
遥感 |
1.日期转儒略日
leap=0;
%判断余数大于0,不能被4整除,则用leap标记这一年不是闰年(标记为0)
if rem(theyear,100)==0
&& rem(theyear,400)~=0
leap=0;
%能被4整除但是不能被400整除也不是闰年,则用leap标记这一年不是闰年
else
leap=1;
%其他情况是闰年
end
if themonth==1
juliaday=theday;
end
if themonth==2
juliaday=theday+31;
end
if themonth==3
juliaday=theday+59;
end
if themonth==4
juliaday=theday+90;
end
if themonth==5
juliaday=theday+120;
end
if themonth==6
juliaday=theday+151;
end
if themonth==7
juliaday=theday+181;
end
if themonth==8
juliaday=theday+212;
end
if themonth==9
juliaday=theday+243;
end
if themonth==10
juliaday=theday+273;
end
if themonth==11
juliaday=theday+304;
end
if themonth==12
juliaday=theday+334;
end
if themonth<=2
%如果是闰年,当月份小于2月时,julian日期与平年相同
juliaday=juliaday;
end
if themonth>=3
juliaday=juliaday+1;
%当月份大于2月时,在平年的基础上加一天
end
leap=0;
%判断余数大于0,不能被4整除,则用leap标记这一年不是闰年(标记为0)
if rem(yr,100)==0
&& rem(yr,400)~=0
leap=0;
%能被4整除但是不能被400整除也不是闰年,则用leap标记这一年不是闰年
else
leap=1;
%其他情况是闰年
end
day=day;
d=1;
day=day-(334+leap);
d=12;
day=day-(304+leap);
d=11;
day=day-(273+leap);
d=10;
day=day-(243+leap);
d=9;
day=day-(212+leap);
d=8;
day=day-181;
d=7;
day=day-(151+leap);
d=6;
day=day-(120+leap);
d=5;
day=day-(90+leap);
d=4;
day=day-(59+leap);
d=3;
day=day-31;
d=2;
function y=julia(theyear,themonth,theday)
%return the julian day
(year,day)定义函数julia为转换为julian日期函数,变量y为返回的julian日期,输入变量为theyear/年,themonth/月,theday/日
%例如输入julia(2008,12,31)返回2008,366
leapyear=rem(theyear,4);
%年对4求余数
if leapyear>0
else
end
%%%%%%采用平年的日历,按1-12月分月计算julian日期
if leap==1
end
y(1)=theyear;
y(2)=juliaday;
%返回的矢
2.儒略日转日期
function [year,month,dayy]=w(juliaday)
%输入数值
% 输入juliaday格式为2009098
cal=num2str(juliaday);
yr=str2num(cal(1:4));
day=str2num(cal(5:7));
leapyear=rem(yr,4);
%年对4求余数
if leapyear>0
else
end
%%%%%%采用平年的日历,按1-12月分月计算julian日期
if day <= 31
end
if day > (334+leap)
end
if day > (304+leap)
end
if day > (273+leap)
end
if day > (243+leap)
end
if day > (212+leap)
end
if day >(181+leap)
end
if day > (151+leap)
end
if day > (120+leap)
end
if day > (90+leap)
end
if day > (59+leap)
end
if day > 31
end
year=yr;
month=d;
dayy=day;
后一篇:完整模板:论文审稿