view m-toolbox/classes/@time/minus.m @ 37:a4b7ceae0403 database-connection-manager

Show backtrace on unit test errors
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Mon, 05 Dec 2011 16:20:06 +0100
parents f0afece42f48
children
line wrap: on
line source

% MINUS Implements subtraction operator for time objects.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% DESCRIPTION: Implements subtraction operator for time objects. Numeric and
% string operands are transparently handled converting them to time objects.
% Vector operands are handled accordingly to MATLAB conventions.
%
% VERSION: $Id: minus.m,v 1.18 2011/05/05 12:29:34 hewitson Exp $
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function t = minus(t1, t2)

  if isnumeric(t1)
    d1 = t1*1000;
  elseif ischar(t1)
    d1 = time(t1).utc_epoch_milli;
  elseif isa(t1, 'time')
    d1 = t1.utc_epoch_milli;
  else
    error('LTPDA:TypeError', ...
          '### unsupported operand classes for minus: ''%s'' and ''%s''', ...
          class(t1), class(t2));
  end

  if isnumeric(t2)
    d2 = t2*1000;
  elseif ischar(t2)
    d2 = time(t2).utc_epoch_milli;
  elseif isa(t2, 'time')
    d2 = t2.utc_epoch_milli;
  else
    error('LTPDA:TypeError', ...
          '### unsupported operand classes for minus: ''%s'' and ''%s''', ...
          class(t1), class(t2));
  end
  
  t = time((d1 - d2)/1000);
end