dates_old.m

来自「GPS相关工具」· M 代码 · 共 81 行

M
81
字号
% DATES% Converts between the following date formats:%  - Year, Month, Day%  - Year, Day-of-Year%  - Decimal Year%% Required M-files: caldate, juldate% 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 23 Apr 99, Corrected to use day 1 for beginning of year in juldateclear;ver = 'MATLAB 99.04.23';disp(' ');disp('DATES: Converts between different date formats.');disp(['       M.Craymer, ' ver]);disp(' ');ok = 1;while (ok)  disp('Conversion from:');  disp('  1) Year,Month,Day');  disp('  2) Year,Day-of-Year');  disp('  3) Decimal Year');  iopt=input('Select conversion [0=quit] > ');  if isempty(iopt)    iopt = 0;  end %if  if (iopt == 0)    ok = 0;    disp(' ');  elseif (iopt == 1)    %fprintf(1,'\nEnter Year,Month,Day > ');       %Octave    %[yr mn dy] = fscanf(0,'%f %f %f');            %Octave    rec = input('Enter Year,Month,Day > ','s');    %MATLAB    cdate = sscanf(rec,'%f %f %f');                %MATLAB    yr = cdate(1);                                 %MATLAB    mn = cdate(2);                                 %MATLAB    dy = cdate(3);                                 %MATLAB    jd=juldate(yr,mn,dy);    doy = jd - juldate(yr,1,1) + 1;    fprintf(1,'Year,Day-of-Year = %d %5.1\n',yr,doy);    fprintf(1,'Decimal Year = %7.4f\n',yr+(doy-1)/365.25);    fprintf(1,'Julian Date = %9.1f\n\n',jd);  elseif (iopt == 2)    %fprintf(1,'\nEnter Year,Day-of-Year > ');     %Octave    %[yr doy] = fscanf(0,'%f %f');                 %Octave    rec = input('Enter Year,Day-of-Year > ','s');  %MATLAB    cdate = sscanf(rec,'%f %f');                   %MATLAB    yr = cdate(1);                                 %MATLAB    doy = cdate(2);                                %MATLAB    jd = juldate(yr,1,1) + doy - 1;    [yr mn dy] = caldate(jd);    fprintf(1,'Year,Month,Day = %d %d %5.2f\n',yr,mn,dy);    fprintf(1,'Year,Day-of-Year = %7.4f\n',yr+doy/365.25);    fprintf(1,'Julian Date = %9.1f\n\n',jd);  elseif (iopt == 3)    %fprintf(1,'\nEnter Year & Decimal Year> ');   %Octave    %yr = fscanf(0,'%f');                          %Octave    yr = input('Enter Year & Decimal Year > ');    %MATLAB    doy = (yr-floor(yr))*365.25;    yr = floor(yr);    jd = juldate(yr,1,1) + doy;    [yr mn dy] = caldate(jd);    fprintf(1,'Year,Month,Day = %d %d %5.2f\n',yr,mn,dy);    fprintf(1,'Year,Day-of-Year = %d %6.2f\n\n',yr,doy);  else    fprintf(1,'*** Undefined transformation selected\a\n');  end %ifend %while

⌨️ 快捷键说明

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