Python不包括两个日期之间的周末

2024-06-16 18:22:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我想计算这两个日期之间的差异,但不包括周末。日期格式如下:

CreateDate  - 2017-08-29 10:47:00
ResolveDate - 2017-09-23 16:56:00

Tags: 格式差异createdateresolvedate
3条回答

还有一种使用isoweekday()的python方法:

import datetime, pprint

# isoweekday: Monday is 1 and Sunday is 7
start_date = datetime.date(2017, 10, 1)
end_date = datetime.date(2017, 12, 31)
days = end_date - start_date
valid_date_list = {(start_date + datetime.timedelta(days=x)).strftime('%d-%b-%Y')
                        for x in range(days.days+1)
                        if (start_date + datetime.timedelta(days=x)).isoweekday() <= 5
                       }
print("Business Days = {}".format(len(valid_date_list)))

您可以使用numpy.busday_count:

from datetime import datetime
import numpy as np

create_date = "2017-08-29 10:47:00" 
resolve_date = "2017-09-23 16:56:00"

create_datetime = datetime.strptime(create_date, '%Y-%m-%d %H:%M:%S')
resolve_datetime = datetime.strptime(resolve_date, '%Y-%m-%d %H:%M:%S')

print("The difference in days is: %d" % ((resolve_datetime - create_datetime).days))
print("The difference in business days is: %d") % (np.busday_count(create_datetime, resolve_datetime))

输出:

^{pr2}$

运行一个while循环,该循环不断向create_date添加+1天的timedelta。在单独的柜台记录工作日和周末。在

相关问题 更多 >