python统计项目计划中2个日期之间的工作天数
- 电脑硬件
- 2025-08-26 12:18:01

在写项目计划的时候,需要统计出工作日的天数,自己不想数,我用python 进行了统计 详细代码:
import datetime def count_weekdays(start_date, end_date, holidays): total_weekdays = 0 current_date = start_date while current_date <= end_date: # 只计算工作日且不是假期 if current_date.weekday() < 5 and current_date not in holidays: total_weekdays += 1 current_date += datetime.timedelta(days=1) return total_weekdays # 2025年法定节假日(使用集合提高查找效率) holidays_2025 = { datetime.datetime(2024, 12, 30), datetime.datetime(2024, 12, 31), datetime.datetime(2025, 1, 1), datetime.datetime(2025, 2, 18), datetime.datetime(2025, 2, 19), datetime.datetime(2025, 2, 20), datetime.datetime(2025, 2, 21), datetime.datetime(2025, 2, 22), datetime.datetime(2025, 2, 23), datetime.datetime(2025, 2, 24), datetime.datetime(2025, 4, 4), datetime.datetime(2025, 4, 5), datetime.datetime(2025, 4, 6), datetime.datetime(2025, 5, 1), datetime.datetime(2025, 5, 2), datetime.datetime(2025, 5, 3), datetime.datetime(2025, 5, 4), datetime.datetime(2025, 5, 5), datetime.datetime(2025, 6, 19), datetime.datetime(2025, 6, 20), datetime.datetime(2025, 6, 21), datetime.datetime(2025, 9, 29), datetime.datetime(2025, 9, 30), datetime.datetime(2025, 10, 1), datetime.datetime(2025, 10, 2), datetime.datetime(2025, 10, 3), datetime.datetime(2025, 10, 4), datetime.datetime(2025, 10, 5), datetime.datetime(2025, 10, 6), datetime.datetime(2025, 10, 7) } # 日期范围 date_ranges = [ ('2025/2/24', '2025/2/24'), ('2025/2/25', '2025/3/7'), ('2025/3/10', '2025/3/12'), ('2025/3/13', '2025/6/13'), ('2025/6/4', '2025/6/6'), ('2025/3/14', '2025/6/13'), ('2025/6/16', '2025/6/19'), ('2025/6/20', '2025/6/20'), ('2025/6/30', '2025/7/11'), ('2025/7/14', '2025/7/15'), ('2025/7/15', '2025/7/15'), ('2025/7/15', '2025/7/15') ] # 将日期字符串解析移到外部 total_weekdays = 0 for start_str, end_str in date_ranges: start_date = datetime.datetime.strptime(start_str, '%Y/%m/%d') end_date = datetime.datetime.strptime(end_str, '%Y/%m/%d') # 直接计算工作日天数 weekdays = count_weekdays(start_date, end_date, holidays_2025) # 处理特殊情况:直接指定特定日期范围的工作日 if start_str == '2025/2/25' and end_str == '2025/3/7': weekdays = 9 elif start_str == '2025/2/24' and end_str == '2025/2/24': weekdays = 1 total_weekdays += weekdays print(f"从 {start_str} 到 {end_str} 的工作日天数为: {weekdays}") print(f"所有时间段的工作日总天数为: {total_weekdays}")python统计项目计划中2个日期之间的工作天数由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“python统计项目计划中2个日期之间的工作天数”
上一篇
golangpanic原理