ECG-Kit 1.0
(2,230 bytes)
%% (Internal) Create a string of hours mins and seconds based on data in seconds
%
%
% [strRetVal, iHours, iMins, iSeconds, iMilliSeconds ] = Seconds2HMS(data, prec)
%
% Arguments:
%
% + data: Time in seconds
%
% + prec: the number of decimals for the seconds decimals.
%
% Output:
%
% + strRetVal: A string with the formatted time.
%
% + iHours, iMins, iSeconds, iMilliSeconds : Each part of the time.
%
% Example:
%
% this_dur_str = Seconds2HMS( aux_dur, time_precision);
%
% See also plot_ecg_strip
%
% Author: Mariano Llamedo Soria llamedom@electron.frba.utn.edu.ar
% Version: 0.1 beta
% Last update: 14/5/2014
% Birthdate : 21/4/2015
% Copyright 2008-2015
%
function [strRetVal, iHours, iMins, iSeconds, iMilliSeconds ] = Seconds2HMS(data, prec)
if( nargin < 2 )
% decimals of the seconds
prec = 0;
end
sign_data = sign(data);
data = abs(data);
iDays = floor(data * 1 / 60 / 60 / 24);
iHours = floor(data * 1 / 60 / 60 - iDays * 24);
iMins = floor(data * 1 / 60 - iDays * 24 * 60 - iHours * 60 );
iSeconds = floor(data - iDays * 24 * 60 * 60 - iHours * 60 * 60 - iMins * 60);
iMilliSeconds = (data - iDays * 24 * 60 * 60 - iHours * 60 * 60 - iMins * 60 - iSeconds) * 1000;
ldata = length(data);
strRetVal = cell(ldata,1);
for ii = 1:ldata
if( sign_data(ii) < 0 )
strAux = '-';
else
strAux = [];
end
if( iDays(ii) > 0 )
strAux = [ strAux num2str(iDays(ii)) 'd ' ];
end
if( iHours(ii) > 0 )
strAux = [ strAux num2str(iHours(ii)) 'h ' ];
end
if( iMins(ii) > 0 )
strAux = [ strAux num2str(iMins(ii)) ''' ' ];
end
if (iSeconds(ii) > 0 || isempty(strAux) )
if( prec > 0 && iMilliSeconds(ii) > 0 )
strAux = [ strAux sprintf( [ '%d.' ] , iSeconds(ii) ) ];
strAux2 = sprintf( '%03d', round(iMilliSeconds(ii)) );
strAux = [ strAux strAux2(1:min(3,prec)) '"' ];
else
strAux = [ strAux sprintf( [ '%d"' ] , iSeconds(ii)) ];
end
end
strRetVal{ii} = strAux;
end
strRetVal = char(strRetVal);