Code covered by the BSD License  

Highlights from
choose_transect_limits

image thumbnail
from choose_transect_limits by Kevin Bartlett
GUI for choosing time limits of oceanographic transects

intdatevec(time)
function [year,month,day,hour,minute,second] = intdatevec(time)
%
% intdatevec.m--Calls Matlab's datevec.m function, but rounds the seconds value
% up or down to the nearest integer.
%
% If called with 1 or 0 output arguments, intdatevec.m returns the year, 
% month, day, hour, minute and second values in a single vector variable.
% [year,month,day,hour,minute,second] = intdatevec(time) returns the 
% components of the date vector as individual variables.
%
% Syntax: [year,month,day,hour,minute,second] = intdatevec(time)
%
% e.g., DateVector = intdatevec(datenum(1999,12,31,23,59,59.9))
% e.g., [year,month,day,hour,minute,second] = intdatevec(datenum(1999,12,31,23,59,59.9))

% Kevin Bartlett (bartlettk@dfo-mpo.gc.ca) 11/1999
%------------------------------------------------------------------------------
% Tests for development:
% start = datenum(1999,12,31,23,59,59.9);DateVector = intdatevec([start:.2:start+3])

% Make sure time is a column vector.
time = time(:);

% Run Matlab's datevec.m function.
DateVector = datevec(time);

% Round the seconds to the nearest integer value.
DateVector(:,6) = round(DateVector(:,6));

% Carry over the rounding to the other elements of the date vector.

% ...minutes:
FindIndex = find(DateVector(:,6)>=60);

if ~isempty(FindIndex),
   DateVector(FindIndex,5) = DateVector(FindIndex,5) + 1;
   DateVector(FindIndex,6) = 0;
end % if

% ...hours:
FindIndex = find(DateVector(:,5)>=60);

if ~isempty(FindIndex),
   DateVector(FindIndex,4) = DateVector(FindIndex,4) + 1;
   DateVector(FindIndex,5) = 0;
end % if

% ...days:
FindIndex = find(DateVector(:,4)>=24);

if ~isempty(FindIndex),
   DateVector(FindIndex,3) = DateVector(FindIndex,3) + 1;
   DateVector(FindIndex,4) = 0;
end % if

% ...months:
InputYear = DateVector(:,1);
InputMonth = DateVector(:,2);
DaysInMonth = eomday(InputYear,InputMonth);

FindIndex = find(DateVector(:,3)>DaysInMonth);

if ~isempty(FindIndex),
   DateVector(FindIndex,2) = DateVector(FindIndex,2) + 1;
   DateVector(FindIndex,3) = 1;
end % if

% ...years:
FindIndex = find(DateVector(:,2)>12);

if ~isempty(FindIndex),
   DateVector(FindIndex,1) = DateVector(FindIndex,1) + 1;
   DateVector(FindIndex,2) = 1;
end % if

if nargout <= 1,
   year = DateVector;
else
   year   = DateVector(:,1);
   month  = DateVector(:,2);
   day    = DateVector(:,3);
   hour   = DateVector(:,4);
   minute = DateVector(:,5);
   second = DateVector(:,6);
end % if

Contact us at files@mathworks.com