不使用第三方库,Python 怎样找出当月的第五个工作日(排除节假日)

2025-01-09 01:53:04   小编

不使用第三方库,Python 怎样找出当月的第五个工作日(排除节假日)

在Python编程中,有时我们需要找出当月的第五个工作日,同时还要排除节假日。虽然有许多第三方库可以帮助我们完成这个任务,但本文将介绍如何在不使用第三方库的情况下实现这一功能。

我们需要获取当前月份的日历信息。可以使用Python的内置模块calendar来获取。以下是一个示例代码:

import calendar

def find_fifth_workday(year, month, holidays):
    cal = calendar.monthcalendar(year, month)
    workdays = []
    for week in cal:
        for i, day in enumerate(week):
            if day!= 0 and i >= 0 and i <= 4 and (year, month, day) not in holidays:
                workdays.append(day)
    if len(workdays) >= 5:
        return workdays[4]
    else:
        return None

在上述代码中,我们定义了一个函数find_fifth_workday,它接受年份、月份和节假日列表作为参数。函数首先获取指定月份的日历信息,然后遍历每个星期,找出工作日并排除节假日。最后,如果工作日数量大于等于5,则返回第五个工作日;否则,返回None

接下来,我们需要定义一个节假日列表。可以根据实际情况手动添加节假日的日期。例如:

holidays = [(2024, 1, 1), (2024, 1, 2)]  # 假设1月1日和1月2日是节假日
year = 2024
month = 1
fifth_workday = find_fifth_workday(year, month, holidays)
if fifth_workday:
    print(f"{year}年{month}月的第五个工作日是{month}月{fifth_workday}日")
else:
    print(f"{year}年{month}月没有第五个工作日")

在上述代码中,我们定义了一个节假日列表holidays,然后调用find_fifth_workday函数来找出第五个工作日。最后,根据返回结果输出相应的信息。

通过以上方法,我们可以在不使用第三方库的情况下,使用Python找出当月的第五个工作日(排除节假日)。这种方法简单易懂,并且可以根据实际情况进行调整和扩展。

TAGS: Python编程 日期处理 工作日计算 节假日排除

欢迎使用万千站长工具!

Welcome to www.zzTool.com