给出周几和天数,写一段计算工作日天数的程序,减少程序运行时间
时间: 2023-05-27 22:08:01 浏览: 54
以下是Python代码实现:
```python
import datetime
def workdays_count(start_day, days):
weekdays = [1, 2, 3, 4, 5] # 工作日为周一至周五
start_date = datetime.datetime.strptime(start_day, "%Y-%m-%d") # 转化为日期格式
end_date = start_date + datetime.timedelta(days=days) # 计算结束日期
count = 0 # 初始化工作日天数为0
while start_date <= end_date:
if start_date.weekday() in weekdays: # 判断是否为工作日
count += 1
start_date += datetime.timedelta(days=1) # 日期加1天
return count
```
其中,`start_day`为起始日期,格式为`年-月-日`,`days`为天数。函数返回值为工作日天数。
为了减少程序运行时间,我们可以将工作日的判断条件从列表中改为集合,这样可以提高判断的速度。
改进后的代码如下:
```python
import datetime
def workdays_count(start_day, days):
weekdays = {1, 2, 3, 4, 5} # 工作日为周一至周五
start_date = datetime.datetime.strptime(start_day, "%Y-%m-%d") # 转化为日期格式
end_date = start_date + datetime.timedelta(days=days) # 计算结束日期
count = 0 # 初始化工作日天数为0
while start_date <= end_date:
if start_date.weekday() in weekdays: # 判断是否为工作日
count += 1
start_date += datetime.timedelta(days=1) # 日期加1天
return count
```
这样就可以提高程序的运行效率。