Python获取本周最后一个工作日
简介
在开发中,经常会遇到需要获取日期的需求。本文将教你如何使用Python获取本周的最后一个工作日,以满足日常开发中的需求。
整体流程
下面是实现该功能的整体流程:
- 获取当前日期
- 判断当前日期是否为工作日
- 如果是工作日,则判断是否为本周最后一天
- 如果是本周最后一天,则输出结果
- 如果不是本周最后一天,则计算下一个工作日
- 返回第3步
代码实现
下面是每一步需要做的事情以及对应的代码:
1. 获取当前日期
首先,我们需要获取当前日期,以便后续的判断和计算。可以使用Python的datetime
模块来获取当前日期,代码如下:
import datetime
today = datetime.date.today()
上面的代码中,datetime.date.today()
函数可以返回当前日期。
2. 判断当前日期是否为工作日
在判断当前日期是否为工作日之前,我们需要先定义工作日的概念。通常情况下,周一至周五都是工作日,周六和周日为非工作日。
下面的代码可以判断当前日期是否为工作日:
is_weekday = today.weekday() < 5
上面的代码中,today.weekday()
函数可以返回当前日期的星期几,星期一为0,星期日为6。通过判断星期几是否小于5,即可确定当前日期是否为工作日。
3. 判断是否为本周最后一天
如果当前日期是工作日,我们还需要判断它是否为本周的最后一天。可以使用datetime
模块的weekday()
函数来判断,代码如下:
is_last_day = today.weekday() == 4
上面的代码中,today.weekday()
函数返回的结果为0到6,其中0表示星期一,6表示星期日。通过判断当前日期的星期几是否为4(星期五),即可确定是否为本周最后一天。
4. 输出结果
如果当前日期是工作日且为本周最后一天,我们就可以输出结果了。可以使用print()
函数输出结果,代码如下:
if is_weekday and is_last_day:
print("本周最后一个工作日是:", today)
上面的代码中,如果当前日期既是工作日又是本周最后一天,则会输出当前日期。
5. 计算下一个工作日
如果当前日期不是本周最后一天,我们需要计算下一个工作日。可以使用timedelta
类来进行日期的加减操作,代码如下:
from datetime import timedelta
next_day = today + timedelta(days=1)
上面的代码中,timedelta(days=1)
表示日期增加一天。通过将当前日期加上一天,即可得到下一个工作日。
6. 返回第3步
如果当前日期不是本周最后一天,我们需要返回到第3步,继续判断是否为本周最后一天,直到找到本周的最后一个工作日为止。
示例代码
下面是完整的示例代码:
import datetime
from datetime import timedelta
def get_last_weekday():
today = datetime.date.today()
is_weekday = today.weekday() < 5
is_last_day = today.weekday() == 4
if is_weekday and is_last_day:
print("本周最后一个工作日是:", today)
else:
next_day = today + timedelta(days=1)
return next_day
last_weekday = get_last_weekday()
while last_weekday is not None:
last_weekday = get_last_weekday()
关系图
下面是该功能的关系图:
erDiagram
获取当前日期 }|..| 判断当前日期是否为工作日
判断当前日期是否为工作日 }|..| 判断是否为本周最后一天
判断是否为本周最后一天 }|..| 计算下一个工作日
计算下一个工作日 }|..| 返回第3步
返回第