numpy.busday_count(begindates, enddates, weekmask='1111100', holidays=[], busdaycal=None, out=None)

Counts the number of valid days between begindates and enddates, not including the day of enddates.

If enddates specifies a date value that is earlier than the corresponding begindates date value, the count will be negative.

New in version 1.7.0.

begindatesarray_like of datetime64[D]

The array of the first dates for counting.

enddatesarray_like of datetime64[D]

The array of the end dates for counting, which are excluded from the count themselves.

weekmaskstr or array_like of bool, optional

A seven-element array indicating which of Monday through Sunday are valid days. May be specified as a length-seven list or array, like [1,1,1,1,1,0,0]; a length-seven string, like ‘1111100’; or a string like “Mon Tue Wed Thu Fri”, made up of 3-character abbreviations for weekdays, optionally separated by white space. Valid abbreviations are: Mon Tue Wed Thu Fri Sat Sun

holidaysarray_like of datetime64[D], optional

An array of dates to consider as invalid dates. They may be specified in any order, and NaT (not-a-time) dates are ignored. This list is saved in a normalized form that is suited for fast calculations of valid days.

busdaycalbusdaycalendar, optional

A busdaycalendar object which specifies the valid days. If this parameter is provided, neither weekmask nor holidays may be provided.

outarray of int, optional

If provided, this array is filled with the result.

outarray of int

An array with a shape from broadcasting begindates and enddates together, containing the number of valid days between the begin and end dates.

See also


An object that specifies a custom set of valid days.


Returns a boolean array indicating valid days.


Applies an offset counted in valid days.


>>> # Number of weekdays in January 2011
... np.busday_count('2011-01', '2011-02')
>>> # Number of weekdays in 2011
>>> np.busday_count('2011', '2012')
>>> # Number of Saturdays in 2011
... np.busday_count('2011', '2012', weekmask='Sat')