技术文章和资源

技术文章(时间排序)

热门类别

Python PHP MySQL JDBC Linux

在 NumPy 中查找给定月份的工作日数量

pythonnumpyserver side programmingprogramming

Numpy 是 Python 中的一个开源库,用于数值计算、科学计算、数据分析和机器学习应用。该库具有强大的数组方法和工具来执行向量和矩阵运算。

您必须手动安装 NumPy 模块,因为它不是默认 Python 库的组件。可以使用 Python 包管理器 pip 通过执行以下命令来完成此操作 -

pip install numpy

我们将使用 NumPy 的 busday_count() 函数来计算所需的工作日数量。这将计算两个特定日期之间的工作日数(周一至周五)。

语法

numpy.busday_count(startdate, enddate, weekmask, holidays)

返回值 − 整数(天数)

  • Startdate − 您要计算有效天数的日期范围(含)。这应该是"YYYY-MM-DD"格式的字符串

  • Enddate − 您要计算有效天数的日期范围(不含)。这也应该是"YYYY-MM-DD"格式的字符串。

  • Weekmask − 这是一个可选的 string 参数,表示星期几。默认情况下,设置为星期一至星期五。

  • Holidays − 日期字符串数组,标记为节假日,不计入计数。这也是一个可选参数。

示例 1

以下示例使用 NumPy 和 datetime 模块计算给定月份的星期几(星期一至星期五)。

算法

  • 导入所需的 numpy 库。

  • 将 startdate 和 enddate 参数传递给 busday_count() 函数。

  • 打印编号。工作日数。

import numpy as np

# 获取月份的天数
num_days = np.busday_count('2023-02-01', '2023-03-01')

print(f"2023 年 2 月有 {num_days} 个工作日")

输出

2023 年 2 月有 20 个工作日

示例 2

以下示例计算 2 月的工作日数,前提是该年是闰年。我们认为 2024 年是闰年。

import numpy as np

# 获取闰年月份的天数
num_days = np.busday_count('2024-02-01', '2024-03-01', weekmask = 'Mon Tue Wed Thu Fri')

print(f"There are {num_days} weekdays in 2024 February")

输出

There are 21 weekdays in  2024 February

示例 3

以下示例统计除国定假日外的工作日数量。

算法

  • 导入 numpy 库。

  • 创建 1 月份的假日列表。

  • 计算 1 月份的假日数量。工作日并将值存储在 num_days 变量中,并将假期列表与函数一起传递。

  • 打印值。

import numpy as np
holidays = ['2023-01-01', '2023-01-26']

# 获取月份中的天数
num_days = np.busday_count('2023-01-01', '2023-02-01', holidays = holidays)

print(f"2023 年 1 月的工作日(不包括国定假日)是:{num_days}")

输出

2023 年 1 月的工作日(不包括国定假日)是:21

注意 − 不排除国定假日,工作日数量为 22。由于 1 月 1 日是星期日,因此不算作工作日,因此是 21 个工作日,而不是 (22-2=20) 20 个工作日。

holidays 参数将以字符串或日期列表作为其值。它还会检查指定的国定假日是否是工作日

结论

busday_count() 函数对于需要计算两个日期之间的工作日的应用程序很有用。它可以有效地用于利息计算、银行的债券期限或甚至股票市场的交易期。它还可以用于项目管理应用程序中,以计算完成任务或项目所需的工作日数。


相关文章