Home > classes > @timespan > set.m

set

PURPOSE ^

SET set timespan properties.

SYNOPSIS ^

function ts = set(ts, varargin)

DESCRIPTION ^

 SET set timespan properties.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

 DESCRIPTION: SET set timespan properties.

 CALL:        ts = set(ts, 'property', 'value');

 EXAMPLES:    ts = set(ts, 'start',      '14:00:00');
              ts = set(ts, 'end',        '14:00:05');
              ts = set(ts, 'timeformat', 'HH:MM:SS');
              ts = set(ts, 'timeformat',  31);
              ts = set(ts, 'timezone',   'UTC');

 VERSION:     $Id: set.m,v 1.7 2007/08/29 13:11:34 ingo Exp $

 HISTORY:     23-07-2007 Diepholz
                 Creation

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function ts = set(ts, varargin)
0002 % SET set timespan properties.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION: SET set timespan properties.
0007 %
0008 % CALL:        ts = set(ts, 'property', 'value');
0009 %
0010 % EXAMPLES:    ts = set(ts, 'start',      '14:00:00');
0011 %              ts = set(ts, 'end',        '14:00:05');
0012 %              ts = set(ts, 'timeformat', 'HH:MM:SS');
0013 %              ts = set(ts, 'timeformat',  31);
0014 %              ts = set(ts, 'timezone',   'UTC');
0015 %
0016 % VERSION:     $Id: set.m,v 1.7 2007/08/29 13:11:34 ingo Exp $
0017 %
0018 % HISTORY:     23-07-2007 Diepholz
0019 %                 Creation
0020 %
0021 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0022 
0023 if (nargout ~= 0)
0024 
0025   fields = fieldnames(ts);
0026 
0027   property_argin = varargin;
0028 
0029   while length(property_argin) >= 2
0030     prop = property_argin{1};
0031     val  = property_argin{2};
0032     property_argin = property_argin(3:end);
0033 
0034     if ~ismember(prop, fields)
0035       error(['### ', prop, ' is not a valid timespan property.']);
0036     else
0037       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0038       % Set the start time.
0039       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0040       if strcmp(prop, 'start')
0041 
0042         if isa(val, 'time')
0043           val = set(val, 'timeformat', ts.timeformat);
0044           ts.start = val;
0045         elseif ischar(val)
0046           ts.start = time(val, char(ts.timeformat));
0047         end
0048 
0049         % Compute the interval
0050         ts = compute_interval(ts);
0051 
0052         %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0053       % Set the end time.
0054       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0055       elseif strcmp(prop, 'end')
0056 
0057         if isa(val, 'time')
0058           val = set(val, 'timeformat', ts.timeformat);
0059           ts.end = val;
0060         elseif ischar(val)
0061           ts.end = time(val, char(ts.timeformat));
0062         end
0063 
0064         % Compute the interval
0065         ts = compute_interval(ts);
0066 
0067       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0068       % Set the timeformat.
0069       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0070       elseif strcmp(prop, 'timeformat')
0071 
0072         if isa(val, 'timeformat')
0073           ts.timeformat   = val;
0074 
0075           ts.start = set(ts.start, 'timeformat', char(val));
0076           ts.end   = set(ts.end,   'timeformat', char(val));
0077 
0078         elseif ischar(val) || isnumeric(val)
0079           ts.start = set(ts.start, 'timeformat', val);
0080           ts.end   = set(ts.end,   'timeformat', val);
0081 
0082           ts.timeformat   = ts.start.timeformat;
0083         end
0084 
0085       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0086       % Set the timezone
0087       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0088       elseif strcmp(prop, 'timezone')
0089 
0090         ts.start = set(ts.start, 'timezone', val);
0091         ts.end   = set(ts.end,   'timezone', val);
0092 
0093         ts.timezone   = ts.start.timezone;
0094 
0095       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0096       % set all other fields.
0097       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0098       else
0099         ts.(prop) = val;
0100       end
0101     end
0102 
0103   end
0104 
0105 else
0106   if ischar(varargin{2})
0107     error('### please use: %s = set(%s, ''%s'', ''%s'');', ...
0108                         inputname(1), ...
0109                         inputname(1), ...
0110                         varargin{1},  ...
0111                         varargin{2});
0112   elseif isnumeric(varargin{2})
0113     error('### please use: %s = set(%s, ''%s'', %d);', ...
0114                         inputname(1), ...
0115                         inputname(1), ...
0116                         varargin{1},  ...
0117                         varargin{2});
0118   else
0119     error('### please use: %s = set(%s, ''key'', ''value'');', ...
0120                         inputname(1), ...
0121                         inputname(1));
0122   end
0123 end

Generated on Mon 03-Sep-2007 12:12:34 by m2html © 2003