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