⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dates.m

📁 Geodetic tools to be used in navigation analysis
💻 M
字号:
% DATES% Converts between the following date formats:%  - Year, Month, Day%  - Year, Day-of-Year%  - Year, Decimal Year%  - GPS week, seconds of week%% Required M-files: cal2jd, doy2jd, gps2jd, jd2cal, jd2dow, jd2doy, jd2gpsa% Created 24 May 96, M. Craymer% Modified 03 Aug 96, Converted to MATLAB% Modified 29 Sep 98, Convert each option to all other formats% Modified 25 Mar 99, Converted to use isempty% Modified 26 Apr 99, Rewrote to use new date conversion routines%                     Added conversion of GPS week and day of weekwhile 1clear allwarning onver = '1.0 (99.04.26)';day = ['Sun';'Mon';'Tue';'Wed';'Thu';'Fri';'Sat'];month = ['Jan';'Feb';'Mar';'Apr';'May';'Jun';'Jul';'Aug';'Sep';'Oct';'Nov';'Dec'];fprintf(1,'\n\n');fprintf(1,'-------------------------------------------------\n');fprintf(1,' DATES: Converts between different date formats.\n');fprintf(1,'       M.Craymer, v%s\n',ver);fprintf(1,'-------------------------------------------------\n');fprintf(1,'\n');fprintf(1,'Available input date formats:\n');fprintf(1,' 1) Year, Month, Day\n');fprintf(1,' 2) Year, Day of Year\n');fprintf(1,' 3) Year (including decimal year)\n');fprintf(1,' 4) GPS Week, Sec of Week, Number Rollovers\n');fprintf(1,' 5) Julian Date\n');fprintf(1,'\n');buf = input('Enter date format and date [quit] > ','s');if isempty(buf)  fmt = 0;else  date = sscanf(buf,'%f');  fmt = date(1);endok = 1;%----- Exit programif fmt == 0  clear all  return;%----- Day, month, yearelseif fmt == 1  if length(date) < 4    warning('Too few date arguments entered');    ok = 0;  else    iyr = date(2);    mn = date(3);    dy = date(4);    if mn<1 | mn>12      warning('Invalid month');      ok = 0;    end    if dy<1 | dy>=32      warning('Invalid day');      ok = 0;    end    if ok      jd = cal2jd(iyr,mn,dy);      doy = jd2doy(jd);      yr = jd2yr(jd);      dow = jd2dow(jd);      [gpsweek,sow,rollover] = jd2gps(jd);    end  end%----- Year, day of yearelseif fmt == 2  if length(date) < 3    warning('Too few date arguments entered')    ok = 0;  else    iyr = date(2);    doy = date(3);    if doy<1 | doy>=367      warning('Invliad day of year');      ok = 0;    end    if ok      jd=doy2jd(iyr,doy);      [iyr,mn,dy]=jd2cal(jd);      yr = jd2yr(jd);      dow = jd2dow(jd);      [gpsweek,sow,rollover] = jd2gps(jd);    end  end%----- Year & decimal of yearelseif fmt == 3  if length(date) < 2    warning('No date arguments entered');    ok = 0;  else    yr = date(2);    jd=yr2jd(yr);    [iyr,mn,dy]=jd2cal(jd);    doy = jd2doy(jd);    dow = jd2dow(jd);    [gpsweek,sow,rollover] = jd2gps(jd);  end%----- GPS week, sec of weekelseif fmt == 4  if length(date) < 4    rollover = 0;  else    rollover = date(4);  end  if length(date) < 3    sow = 0;  else    sow = date(3);  end  if length(date) < 2    warning('No date arguments entered');    ok = 0;  else    gpsweek = date(2);    if gpsweek<1 | gpsweek>=1025      warning('Invalid GPS week');      ok = 0;    end    if sow<0 | sow>604800      warning('Invliad sec of week');      ok = 0;    end    if ok      jd = gps2jd(gpsweek,sow,rollover);      [iyr,mn,dy]=jd2cal(jd);      doy = jd2doy(jd);      yr = jd2yr(jd);      dow = jd2dow(jd);    end  end%----- Julian dateelseif fmt == 5  if length(date) < 2    warning('No date arguments entered');    ok = 0;  else    jd = date(2);    if jd<1      warning('Invalid Julian date');      ok = 0;    end    if ok      [iyr,mn,dy]=jd2cal(jd);      doy = jd2doy(jd);      yr = jd2yr(jd);      dow = jd2dow(jd);      [gpsweek,sow,rollover] = jd2gps(jd);    end  end%----- Invalid date formatelse  warning('Undefined date format entered');  ok = 0;end%----- List resultsif ok  fprintf(1,'\n');  fprintf(1,'Date    %4d-%2d-%4.1f\n',[iyr,mn,dy]);  fprintf(1,'Year    %12.4f\n',yr);  fprintf(1,'Day of Year   %6.1f\n',doy);  fprintf(1,'Day of Week      %s\n',day(dow,:));  fprintf(1,'GPS Week      %6d\n',gpsweek);  fprintf(1,'Sec of Week   %6.0f\n',sow);  fprintf(1,'Julian Date   %9.1f\n',jd);endend %while

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -