Home > classes > @timespan > timespan.m

timespan

PURPOSE ^

TIMESPAN timespan object class constructor.

SYNOPSIS ^

function varargout = timespan(varargin)

DESCRIPTION ^

 TIMESPAN timespan object class constructor.

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

 DESCRIPTION:  TIMESPAN timespan object class constructor.
               Create a timespan object.

 PROPERTIES:   start      - Start time of the time span. (type: time class)
               end        - End time of the time span.   (type: time class)
               timeformat - The time format of start- AND end- time.
               timezone   - The timezone of start- AND end- time.

 CONSTRUCTORS: t_span = timespan()
               t_span = timespan( time,       time)
               t_span = timespan('time,      '14:00:05')
               t_span = timespan('14:00:00', '14:00:05')
               t_span = timespan('14:00:00',  time)
               t_span = timespan('14:00:00', '14:00:05', 'HH:MM:SS')

 VERSION:      $Id: timespan.m,v 1.10 2007/10/16 17:37:21 ingo Exp $

 HISTORY:      23-07-2007 Diepholz
                  Creation

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

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SUBFUNCTIONS ^

SOURCE CODE ^

0001 function varargout = timespan(varargin)
0002 % TIMESPAN timespan object class constructor.
0003 %
0004 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0005 %
0006 % DESCRIPTION:  TIMESPAN timespan object class constructor.
0007 %               Create a timespan object.
0008 %
0009 % PROPERTIES:   start      - Start time of the time span. (type: time class)
0010 %               end        - End time of the time span.   (type: time class)
0011 %               timeformat - The time format of start- AND end- time.
0012 %               timezone   - The timezone of start- AND end- time.
0013 %
0014 % CONSTRUCTORS: t_span = timespan()
0015 %               t_span = timespan( time,       time)
0016 %               t_span = timespan('time,      '14:00:05')
0017 %               t_span = timespan('14:00:00', '14:00:05')
0018 %               t_span = timespan('14:00:00',  time)
0019 %               t_span = timespan('14:00:00', '14:00:05', 'HH:MM:SS')
0020 %
0021 % VERSION:      $Id: timespan.m,v 1.10 2007/10/16 17:37:21 ingo Exp $
0022 %
0023 % HISTORY:      23-07-2007 Diepholz
0024 %                  Creation
0025 %
0026 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0027 
0028 VERSION = '$Id: timespan.m,v 1.10 2007/10/16 17:37:21 ingo Exp $';
0029 
0030 %%%%%%%%%%%%%%%%%%%%%%%%%   define time properties   %%%%%%%%%%%%%%%%%%%%%%%%%%
0031 
0032   function t_span = init
0033     t_span.name       = 'time span-object';
0034     t_span.start      = time();
0035     t_span.end        = time();
0036     t_span.timeformat = t_span.start.timeformat;
0037     t_span.interval   = '';
0038     t_span.timezone   = t_span.start.timezone;
0039     t_span.created    = time();
0040     t_span.version    = VERSION;
0041 
0042     t_span = class (t_span, 'timespan');
0043   end
0044 
0045 %%%%%%%%%%%%%%%%%%%%%%%%%%%   Create time object   %%%%%%%%%%%%%%%%%%%%%%%%%%%%
0046 
0047 %%%%%%%%%%  t_span = timespan()   %%%%%%%%%%
0048 if nargin == 0
0049 
0050   t_span = init;
0051 
0052 elseif nargin == 1
0053 
0054   %%%%%%%%%% Create from XML fragment %%%%%%%%%%%
0055   if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl')
0056     tf = fromxml(varargin{1});
0057     varargout{1} = tf;
0058   elseif ischar(varargin{1})
0059 
0060     filename = varargin{1};
0061     [path, name, ext, vers] = fileparts(filename);
0062     switch ext
0063       case '.mat'
0064         t_span = load(filename);
0065       case '.xml'
0066         t_span = xmlparse(timespan, filename);
0067       otherwise
0068         error('### Unknown file type.');
0069     end
0070 
0071     varargout{1} = t_span;
0072 
0073   %%%%%%%%%%   t1 = time(struct)   %%%%%%%%%%
0074   elseif isstruct(varargin{1})
0075 
0076     t_span = init();
0077 
0078     fields = fieldnames(varargin{1});
0079     for ii = 1:length(fields)
0080       field = fields{ii};
0081       %%% start -> time-object
0082       if strcmp(field, 'start')
0083         start_t = varargin{1}.start;
0084         if isstruct(start_t)
0085           start_t = time(start_t);
0086         end
0087         t_span.start = start_t;
0088       %%% end -> time-object
0089       elseif strcmp(field, 'end')
0090         end_t = varargin{1}.end;
0091         if isstruct(end_t)
0092           end_t = time(end_t);
0093         end
0094         t_span.end = end_t;
0095       %%% timeformat -> timeformat-object
0096       elseif strcmp(field, 'timeformat')
0097         tf = varargin{1}.timeformat;
0098         if isstruct(tf)
0099           tf = timeformat(tf);
0100         end
0101         t_span.timeformat = tf;
0102       %%% All other
0103       else
0104         try
0105           t_span.(field) = varargin{1}.(field);
0106         catch
0107           error('### The field ''%s'' in the struct is not a timespan property.', field)
0108         end
0109       end
0110     end
0111 
0112     varargout{1} = t_span;
0113 
0114   else
0115     error ('### Unknown constructor');
0116   end
0117 
0118 elseif nargin == 2
0119 
0120   %%%%%%%%%%  t_span = timespan('14:00:00', '14:00:05')   %%%%%%%%%%
0121   if ischar(varargin{1}) && ischar(varargin{2})
0122 
0123     t_span = init;
0124     t_span.start = time(varargin{1});
0125     t_span.end   = time(varargin{2});
0126 
0127     % Adjust the 'timeformat' AND the 'timezone' of the end time to the start time.
0128     t_span = set(t_span, 'timeformat', t_span.start.timeformat);
0129     t_span = set(t_span, 'timezone',   t_span.start.timezone);
0130 
0131     % Compute the interval
0132     t_span = compute_interval(t_span);
0133 
0134   %%%%%%%%%%% From DATABASE
0135   elseif isa(varargin{1}, 'database')
0136 
0137     t_span = retrieve(varargin{1}, varargin{2:end});
0138 
0139   %%%%%%%%%%  t_span = timespan(time, time)   %%%%%%%%%%
0140   elseif isa(varargin{1}, 'time') && isa(varargin{2}, 'time')
0141 
0142     t_span = init;
0143     t_span.start = varargin{1};
0144     t_span.end   = varargin{2};
0145 
0146     % Adjust the 'timeformat' AND the 'timezone' of the end time to the start time.
0147     t_span = set(t_span, 'timeformat', t_span.start.timeformat);
0148     t_span = set(t_span, 'timezone',   t_span.start.timezone);
0149 
0150     % Compute the interval
0151     t_span = compute_interval(t_span);
0152 
0153   %%%%%%%%%%  t_span = timespan(time, '14:00:05')   %%%%%%%%%%
0154   elseif isa(varargin{1}, 'time') && ischar(varargin{2})
0155 
0156     t_span = init;
0157     t_span.start = varargin{1};
0158     t_span.end   = time(varargin{2}, char(t_span.start.timeformat));
0159 
0160     % Adjust the 'timeformat' AND the 'timezone' of the end time to the start time.
0161     t_span = set(t_span, 'timeformat', t_span.start.timeformat);
0162     t_span = set(t_span, 'timezone',   t_span.start.timezone);
0163 
0164     % Compute the interval
0165     t_span = compute_interval(t_span);
0166 
0167   %%%%%%%%%%  t_span = timespan('14:00:00', time)   %%%%%%%%%%
0168   elseif ischar(varargin{1}) && isa(varargin{2}, 'time')
0169 
0170     t_span = init;
0171     t_span.end   = varargin{2};
0172     t_span.start = time(varargin{1}, char(t_span.end.timeformat));
0173 
0174     % Adjust the 'timeformat' AND the 'timezone' of the end time to the start time.
0175     t_span = set(t_span, 'timeformat', t_span.start.timeformat);
0176     t_span = set(t_span, 'timezone',   t_span.start.timezone);
0177 
0178     % Compute the interval
0179     t_span = compute_interval(t_span);
0180 
0181   else
0182     error ('  ### Unknown constructor.');
0183 
0184   end
0185 
0186 elseif nargin == 3
0187 
0188   %%%%%%%%%%  t_span = timespan('14:00:00', '14:00:05', 'HH:MM:SS')   %%%%%%%%%%
0189   if ischar(varargin{1}) && ischar(varargin{2}) && ischar(varargin{3})
0190 
0191     t_span = init;
0192     t_span.start = time(varargin{1}, varargin{3});
0193     t_span.end   = time(varargin{2}, varargin{3});
0194     t_span.timeformat = t_span.start.timeformat;
0195 
0196     % Compute the interval
0197     t_span = compute_interval(t_span);
0198 
0199   elseif isa(varargin{1}, 'time') && isa(varargin{2}, 'time') && isa(varargin{3}, 'timeformat')
0200 
0201     t_span = init;
0202     t_span.start      = varargin{1};
0203     t_span.end        = varargin{2};
0204     t_span.timeformat = varargin{3};
0205 
0206     t_span.start = set(t_span.start, 'timeformat', t_span.timeformat);
0207     t_span.end   = set(t_span.end,   'timeformat', t_span.timeformat);
0208 
0209     % Compute the interval
0210     t_span = compute_interval(t_span);
0211 
0212   else
0213     error ('  ### Unknown constructor.');
0214 
0215   end
0216 
0217 else
0218 
0219   error ('### Unknown number of inputs');
0220 
0221 end
0222 
0223 if t_span.start.utc_epoch_milli > t_span.end.utc_epoch_milli
0224   error('### The start time is larger than the end time.');
0225 end
0226 
0227 varargout{1} = t_span;
0228 
0229 
0230 end % varargout = timespan(varargin)

Generated on Thu 01-Nov-2007 09:42:34 by m2html © 2003