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.8 2007/08/31 17:40:08 hewitson 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.8 2007/08/31 17:40:08 hewitson Exp $
0022 %
0023 % HISTORY:      23-07-2007 Diepholz
0024 %                  Creation
0025 %
0026 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
0027 
0028 %%%%%%%%%%%%%%%%%%%%%%%%%   define time properties   %%%%%%%%%%%%%%%%%%%%%%%%%%
0029 
0030   function t_span = init
0031     t_span.start      = time();
0032     t_span.end        = time();
0033     t_span.timeformat = t_span.start.timeformat;
0034     t_span.interval   = '';
0035     t_span.timezone   = t_span.start.timezone;
0036 
0037     t_span = class (t_span, 'timespan');
0038   end
0039 
0040 %%%%%%%%%%%%%%%%%%%%%%%%%%%   Create time object   %%%%%%%%%%%%%%%%%%%%%%%%%%%%
0041 
0042 %%%%%%%%%%  t_span = timespan()   %%%%%%%%%%
0043 if nargin == 0
0044 
0045   t_span = init;
0046 
0047 elseif nargin == 1
0048   
0049   %%%%%%%%%% Create from XML fragment %%%%%%%%%%%
0050   if isa(varargin{1}, 'org.apache.xerces.dom.DeferredElementImpl')
0051     tf = fromxml(varargin{1});
0052     varargout{1} = tf;
0053   else ischar(varargin{1})
0054 
0055     filename = varargin{1};
0056     [path, name, ext, vers] = fileparts(filename);
0057     switch ext
0058       case '.mat'
0059         t_span = load(filename);
0060       case '.xml'
0061         t_span = xmlparse(timespan, filename);
0062       otherwise
0063         error('### Unknown file type.');
0064     end
0065     
0066     varargout{1} = t_span;
0067     
0068   end
0069   
0070 elseif nargin == 2
0071 
0072   %%%%%%%%%%  t_span = timespan('14:00:00', '14:00:05')   %%%%%%%%%%
0073   if ischar(varargin{1}) && ischar(varargin{2})
0074 
0075     t_span = init;
0076     t_span.start = time(varargin{1});
0077     t_span.end   = time(varargin{2});
0078 
0079     % Adjust the 'timeformat' AND the 'timezone' of the end time to the start time.
0080     t_span = set(t_span, 'timeformat', t_span.start.timeformat);
0081     t_span = set(t_span, 'timezone',   t_span.start.timezone);
0082 
0083     % Compute the interval
0084     t_span = compute_interval(t_span);
0085 
0086   %%%%%%%%%%% From DATABASE
0087   elseif isa(varargin{1}, 'database')    
0088     
0089     t_span = retrieve(varargin{1}, varargin{2:end});
0090     
0091   %%%%%%%%%%  t_span = timespan(time, time)   %%%%%%%%%%
0092   elseif isa(varargin{1}, 'time') && isa(varargin{2}, 'time')
0093 
0094     t_span = init;
0095     t_span.start = varargin{1};
0096     t_span.end   = varargin{2};
0097 
0098     % Adjust the 'timeformat' AND the 'timezone' of the end time to the start time.
0099     t_span = set(t_span, 'timeformat', t_span.start.timeformat);
0100     t_span = set(t_span, 'timezone',   t_span.start.timezone);
0101 
0102     % Compute the interval
0103     t_span = compute_interval(t_span);
0104 
0105   %%%%%%%%%%  t_span = timespan(time, '14:00:05')   %%%%%%%%%%
0106   elseif isa(varargin{1}, 'time') && ischar(varargin{2})
0107 
0108     t_span = init;
0109     t_span.start = varargin{1};
0110     t_span.end   = time(varargin{2}, char(t_span.start.timeformat));
0111 
0112     % Adjust the 'timeformat' AND the 'timezone' of the end time to the start time.
0113     t_span = set(t_span, 'timeformat', t_span.start.timeformat);
0114     t_span = set(t_span, 'timezone',   t_span.start.timezone);
0115 
0116     % Compute the interval
0117     t_span = compute_interval(t_span);
0118 
0119   %%%%%%%%%%  t_span = timespan('14:00:00', time)   %%%%%%%%%%
0120   elseif ischar(varargin{1}) && isa(varargin{2}, 'time')
0121 
0122     t_span = init;
0123     t_span.end   = varargin{2};
0124     t_span.start = time(varargin{1}, char(t_span.end.timeformat));
0125 
0126     % Adjust the 'timeformat' AND the 'timezone' of the end time to the start time.
0127     t_span = set(t_span, 'timeformat', t_span.start.timeformat);
0128     t_span = set(t_span, 'timezone',   t_span.start.timezone);
0129 
0130     % Compute the interval
0131     t_span = compute_interval(t_span);
0132 
0133   else
0134     error ('  ### Unknown constructor.');
0135 
0136   end
0137 
0138 elseif nargin == 3
0139 
0140   %%%%%%%%%%  t_span = timespan('14:00:00', '14:00:05', 'HH:MM:SS')   %%%%%%%%%%
0141   if ischar(varargin{1}) && ischar(varargin{2}) && ischar(varargin{3})
0142 
0143     t_span = init;
0144     t_span.start = time(varargin{1}, varargin{3});
0145     t_span.end   = time(varargin{2}, varargin{3});
0146     t_span.timeformat = t_span.start.timeformat;
0147 
0148     % Compute the interval
0149     t_span = compute_interval(t_span);
0150 
0151   elseif isa(varargin{1}, 'time') && isa(varargin{2}, 'time') && isa(varargin{3}, 'timeformat')
0152 
0153     t_span = init;
0154     t_span.start      = varargin{1};
0155     t_span.end        = varargin{2};
0156     t_span.timeformat = varargin{3};
0157 
0158     t_span.start = set(t_span.start, 'timeformat', t_span.timeformat);
0159     t_span.end   = set(t_span.end,   'timeformat', t_span.timeformat);
0160 
0161     % Compute the interval
0162     t_span = compute_interval(t_span);
0163 
0164   else
0165     error ('  ### Unknown constructor.');
0166 
0167   end
0168 
0169 else
0170 
0171   error ('### Unknown number of inputs');
0172 
0173 end
0174 
0175 if t_span.start.utc_epoch_milli > t_span.end.utc_epoch_milli
0176   error('### The start time is larger than the end time.');
0177 end
0178 
0179 varargout{1} = t_span;
0180 
0181 
0182 end % varargout = timespan(varargin)

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