Python 获取最近一个工作日

Python 获取最近一个工作日

在今天快节奏的商业环境中,随着全球范围内大量的工作进行,开发者需要准确地分析日期。工作日与普通日不同。通常情况下,工作日是指办公室工作的日子,比如股市、政府官员、学校、办公室、银行等等。在处理涉及这些机构的现实问题时,开发者必须按照工作日来设计系统。本文将介绍如何使用Python获取最近一个工作日。

使用 date time 库

date time 是一个常用的Python库,它允许我们处理日期、时间、时间戳等。它允许我们对日期进行操作、格式化和执行多种计算和操作。该库提供了多个类,如 date time、date、time、time delta,用于处理不同类型的操作。我们可以使用 “today” date time 方法来获取当前日期。由于通常每周有五个工作日,我们可以编写程序只访问前一天,即工作日类别。

语法

timedelta(days = <number of days>)

这里是由time delta模块提供的类,它表示两个日期或时间之间的差异。days参数以整数形式表示天数的时长,它表示我们需要在日期间有差异的天数。

示例

在下面的示例中,我们首先导入了date time和time delta类。我们定义了get_previous_day函数,它根据当前日期计算出前一个工作日。”today”方法获取当前日期;time delta方法返回延迟了传入参数的前一天。我们传递的参数为1,表示我们想要前一天。使用while语句,我们只接受也属于工作日类别的日期。我们使用”start time”方法以年月-日期的格式返回前一工作日。

from datetime import datetime, timedelta
def get_previous_business_day():
    today = datetime.today()
    one_day = timedelta(days=1)
    previous_day = today - one_day
    while previous_day.weekday() >= 5: 
        previous_day -= one_day
    return previous_day.strftime("%Y-%m-%d")
print(f"The previous business day is: {get_previous_business_day()}")

输出

The previous business day is: 2023-05-26

使用Pandas库的日期偏移

Pandas是Python中流行的数据分析库。它还提供了一种方便的处理时间的方法。Pandas的Timestamp方法可以将日期转换为Timestamp对象,即pd.t series。Pandas中的offsets模块提供了Business Day类,表示单个工作日。通过将n参数设为1,您可以创建一个表示一天工作日的Business Day对象。

语法

pd.DateOffset(days=<number of days>)

Data Offset类以所需参数的天数作为输入。它表示表示特定天数的时间偏移量。Date Offset对象允许您通过添加或减去特定天数和其他时间组件来执行日期运算,如果需要的话。

示例代码

我们在下面的代码中使用了Pandas库来获取前一个工作日。我们创建了一个名为get_previous_business_day的函数。在这个函数中,我们使用了today方法来获取当前日期。我们使用了Date Offset来进行日期的偏移。我们使用了b date_range方法和periods=1参数来指定我们想要前一个工作日。

import pandas as pd
def get_previous_business_day():
    today = pd.Timestamp.today()
    previous_day = today - pd.DateOffset(days=1)
    previous_business_day = pd.bdate_range(end=previous_day, periods=1)[0]
    return previous_business_day.strftime("%Y-%m-%d")
print(f"The previous business day is: {get_previous_business_day()}")

输出

The previous business day is: 2023-05-26

使用Pandas库的工作日方法

Pandas库中的工作日方法是处理工作日和使用自定义日历的强大工具。您必须首先创建一个“工作日”对象;在此方法下,每个日期都表示一个工作日(不包括周末)。

语法

pd.tseries.offsets.BusinessDay(<number of days>)

该函数定义了一个代表一个工作日的时间偏移量。该函数会处理周末(星期六和星期天)。函数以工作日为类别的天数作为参数。

示例

在下面的示例中,我们指定了日期’2023-05-28’。我们需要计算该日期之前的上一个工作日。我们调用了get_previous_business_day函数,并将date_to_offset作为参数传递进去。在函数中,我们只使用了Business Day方法来延迟日期,以考虑工作日。请注意,我们不需要显式地为工作日编写代码,该方法会自动处理。

import pandas as pd
def get_previous_business_day(date):
    previous_business_day = date - pd.tseries.offsets.BusinessDay(1)
    return previous_business_day
date_to_offset = pd.Timestamp('2023-05-28')
previous_business_day = get_previous_business_day(date_to_offset)
print(f"The previous business day is: {previous_business_day}")

输出

The previous business day is − 2023-05-26

结论

在本文中,我们了解了如何使用Python获取最近的工作日。Python提供了几个库和模块来处理工作日。我们可以使用日期时间、pandas等来处理工作日。所有这些库都有内置函数,使开发人员可以访问工作日。然而,我们也应该知道,工作日在一年中是灵活的。可能会有偶尔的假期,所以开发人员可能需要使用一些第三方API密钥或者将代码与实时数据对齐。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程