www.gusucode.com > bigdata 工具箱 matlab源码程序 > bigdata/@tall/dateshift.m

    function tc = dateshift(tt,varargin)
%DATESHIFT Shift tall datetimes or generate sequences according to a calendar rule.
%   Supported syntaxes for tall DATETIME:
%   T2 = DATESHIFT(T,'start',UNIT)
%   T2 = DATESHIFT(T,'end',UNIT)
%   T2 = DATESHIFT(T,'dayofweek',DOW)
%   T2 = DATESHIFT(T,...,RULE)
%
%   See also DATETIME/DATESHIFT.

%   Copyright 2015-2016 The MathWorks, Inc.

narginchk(3,4);
checkNotTall(upper(mfilename), 1, varargin{1:2});
tt = tall.validateType(tt, mfilename, {'datetime'}, 1);
if nargin > 3 && istall(varargin{3})
    tallrule = tall.validateType(varargin{3}, mfilename, {'numeric'}, 3);
    tc = elementfun(@(x, y) dateshift(x, varargin{1:2}, y), tt, tallrule);
    % Here, we need to be cautious about the size information in the adaptor
    tc.Adaptor = resetSizeInformation(matlab.bigdata.internal.adaptors.getAdaptor(tt));
else
    tc = elementfun(@(x) dateshift(x, varargin{:}), tt);
    % In this case, only 'tt' was tall, so we must preserve all attributes of tt.
    tc.Adaptor = tt.Adaptor;
end
end