技术文摘
不使用第三方库,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找出当月的第五个工作日(排除节假日)。这种方法简单易懂,并且可以根据实际情况进行调整和扩展。