创建日期不包括周末的矢量

时间:2014-07-22 10:58:18

标签: matlab date weekday

我正在尝试创建每日日期的向量。然而,我不想包括周末(即星期六或星期日。

我正在使用isbusday功能,几乎可以满足我的要求。因为我的date_vector('date_vec')中没有星期六或星期日返回。然而它也删除了美国银行假期,例如在我的日期向量中没有12月25日。有没有办法强制这种方法忽略银行假日,还是我应该完全使用其他方法?

date_vec = [dt_start : dt_end];           % daily dates
weekend_vec = [1 0 0 0 0 0 1];            % vector to help remove weekends
bus_day = isbusday(date_vec, [], weekend_vec);
date_vec(bus_day == 0) = [];

Matlab函数ISBUSDAY

%ISBUSDAY True for dates that are business days.
%
% T = ISBUSDAY(Date, Holiday, Weekend)
%
% Inputs:
%        
%   Date    - a vector of dates in question.  Dates are assumed to be whole
%             date numbers or date stamps with no fractional or time
%             values.
%
% Optional Inputs:
%
%   Holiday - a user-defined vector of holidays. The default
%             is a predefined US holidays (in holidays.m)
%
%   Weekend - a vector of length 7, containing 0 and 1, with
%             the value of 1 to indicate weekend day(s). 
%             The first element of this vector corresponds 
%             to Sunday. 
%             Thus, when Saturday and Sunday are weekend
%             then WEEKEND = [1 0 0 0 0 0 1]. The default
%             is Saturday and Sunday weekend.

1 个答案:

答案 0 :(得分:4)

根据isbusday documentation,如果第二个参数为[],则使用默认假期。要强制isbusday 而不是考虑假期,请使用超出范围的值作为第二个参数,例如序列日期0

bus_day = isbusday(date_vec, 0, weekend_vec);