在线计算年积日:https://webapp.geod.nrcan.gc.ca/geod/tools-outils/calendr.php?locale=en
在线计算GPS周以及年积日并且提供当天数据下载:http://www.gnsscalendar.com/
GPS周计算:https://blog.csdn.net/Gou_Hailong/article/details/100805581
全代码:
%doycal.m
%% 计算年积日函数 doy=doycal(year,mon,day)
function doy=doycal(year,mon,day)
%--------------------------------
%%%% Authors: Bill O'Hanlon
%%%% EMAIL: ohanlon@qq.com
%%%% DATE: 30-10-2020
%---------------------------------
n=mon-1;
doy=day;
for i=1:n
str=[num2str(year),sprintf('%02d',mon-i)];
doy=doy+daycal(str2num(str));
end
disp(sprintf('%d 年 %d 月 %d 日年积日为 %d',year,mon,day,doy));
end
%% 判断某年某月有多少天 day=daycal(202002);
function [day]=daycal(x)
%--------------------------------
%%%% Authors: Bill O'Hanlon
%%%% EMAIL: ohanlon@qq.com
%%%% DATE: 30-10-2020
%---------------------------------
month=mod(x,100);
year=(x-month)./100;
num=[1,3,5,7,8,10,12];
if mod(year,4)==0 && mod(year,100) % 判断year是否为闰年,因为闰年的2月是29天
if month==2
day=29;
elseif sum(ismember(num,month))==1
day=31;
else
day=30;
end
else % 非闰年的情况
if month==2
day=28;
elseif sum(ismember(num,month))==1
day=31;
else
day=30;
end
end
end
这里面有俩函数,第二个我处理数据的时候常用,第一个顺手编的。其实有很多在线的计算年积日的网站,开这个博客最大的原因是想以后用第二个函数方便一些,第一个函数可以和GPS周那个联系起来。