写一段计算工作日的程序
时间: 2023-05-27 08:06:52 浏览: 47
下面是一个计算工作日的Python程序:
```python
import datetime
def count_workdays(start_date, end_date):
# 计算工作日总数
workdays = 0
delta = end_date - start_date
for i in range(delta.days + 1):
date = start_date + datetime.timedelta(days=i)
if date.weekday() < 5:
workdays += 1
return workdays
# 测试
start_date = datetime.date(2021, 7, 1)
end_date = datetime.date(2021, 7, 31)
print(count_workdays(start_date, end_date)) # 输出 23
```
该程序使用Python标准库中的datetime模块,其中的datetime.date类表示日期。count_workdays函数接受两个日期作为参数,返回它们之间的工作日总数。它使用datetime.timedelta类计算日期之间的差距,并使用weekday()方法检查日期是星期几。如果是星期一至星期五,则将工作日总数加1。在测试中,程序计算从2021年7月1日到2021年7月31日之间的工作日总数为23。
相关问题
给出周几和天数,写一段计算工作日的程序
以下是一个计算工作日的Python程序,输入参数为周几和天数,输出为工作日的日期。
```python
import datetime
def get_workday(weekday, num_days):
"""
计算工作日的函数
:param weekday: 周几(1-7,1代表周一)
:param num_days: 天数
:return: 工作日的日期
"""
days = 0
date = datetime.date.today()
# 如果今天是周末,则找到下一个工作日
if date.weekday() >= 5:
days = 7 - date.weekday()
date += datetime.timedelta(days=days)
# 找到指定的周几
while date.weekday() != weekday-1:
date += datetime.timedelta(days=1)
# 加上指定的天数
while num_days > 0:
date += datetime.timedelta(days=1)
if date.weekday() < 5:
num_days -= 1
return date
if __name__ == '__main__':
weekday = int(input("请输入周几(1-7,1代表周一):"))
num_days = int(input("请输入天数:"))
workday = get_workday(weekday, num_days)
print("工作日为:", workday)
```
示例输出:
```
请输入周几(1-7,1代表周一):3
请输入天数:5
工作日为: 2021-07-20
```
解释:假设今天是2021年7月15日(周四),输入参数为周三和5天,则程序计算出2021年7月20日是第5个周三,因此输出结果为2021-07-20。
给出周几和天数,写一段计算工作日天数的程序
以下是Python的代码实现:
```python
import datetime
# 输入周几和天数
weekday = int(input("请输入起始日期的星期几(1-7):"))
days = int(input("请输入天数:"))
# 计算工作日天数
workdays = 0
for i in range(days):
# 获取当前日期
date = datetime.date.today() + datetime.timedelta(days=i)
# 判断是否是工作日
if date.weekday() < 5:
workdays += 1
# 输出结果
print("在从起始日期算起的{}天中,共有{}个工作日。".format(days, workdays))
```
示例输出:
```
请输入起始日期的星期几(1-7):3
请输入天数:10
在从起始日期算起的10天中,共有6个工作日。
```
说明:
1. 首先通过`input()`函数获取用户输入的起始日期是星期几和天数。
2. 然后使用`datetime`模块获取当前日期,并通过循环计算从起始日期算起的每一天是不是工作日。
3. 如果某一天是工作日,就将工作日天数加1。
4. 最后输出结果,其中`format()`函数用于格式化输出字符串。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)