www.gusucode.com > matlab 案例源码 matlab代码程序 > matlab/CreateRulebasedSequencesOfDatesExample.m
%% Sequence of Datetime Values Using Calendar Rules % This example shows how to use the |dateshift| function to generate % sequences of dates and time where each instance obeys a rule relating to % a calendar unit or a unit of time. For instance, each datetime must occur % at the beginning a month, on a particular day of the week, or at the end % of a minute. The resulting datetime values in the sequence are not % necessarily equally spaced. %% Dates on Specific Day of Week % Generate a sequence of dates consisting of the next three occurrences of % Monday. First, define today's date. t1 = datetime('today','Format','dd-MMM-yyyy eee') %% % The first input to |dateshift| is always the |datetime| array from which % you want to generate a sequence. Specify |'dayofweek'| as the second % input to indicate that the datetime values in the output sequence must % fall on a specific day of the week. t = dateshift(t1,'dayofweek','Monday',1:3) %% Dates at Start of Month % Generate a sequence of start-of-month dates beginning with April 1, 2014. % Specify |'start'| as the second input to |dateshift| to indicate that % all datetime values in the output sequence should fall at the start of a % particular unit of time. The third input argument defines the unit of % time, in this case, month. The last input to |dateshift| can be an array of integer values that % specifies how |t1| should be shifted. In this case, |0| corresponds to % the start of the current month, and |4| corresponds to the start of the % fourth month from |t1|. t1 = datetime(2014,04,01); t = dateshift(t1,'start','month',0:4) %% Dates at End of Month % Generate a sequence of end-of-month dates beginning with April 1, 2014. t1 = datetime(2014,04,01); t = dateshift(t1,'end','month',0:2) %% % Determine the number of days between each date. dt = caldiff(t,'days') %% % The dates are not equally spaced. %% Other Units of Dates and Time % You can specify other units of time such as week, day, and hour. t1 = datetime('now') %% t = dateshift(t1,'start','hour',0:4) %% Previous Occurences of Dates and Time % Generate a sequence of datetime values beginning with the previous hour. % Negative integers in the last input to |dateshift| correspond to datetime % values earlier than |t1|. t = dateshift(t1,'start','hour',-1:1)