1 问题
计算两个日期之间有几个工作日(除周末)、有几天(不除周末)。
2 方法
用python里pandas的函数实现。
start_day: 开始日期20220101
end_day:结束日期
freq:频率,bdate_range函数不带该参数时默认是'b',即工作日。计算工作日时,这个freq固定为B或b或者不带这个参数可以
代码清单 1
def weekday_1(): import pandas as pd e = pd.bdate_range('20220319', '20220326',freq='b') #bdate_range 6 #date_range 8 print (e) minutes = len(e) print(minutes) weekday_1() def weekday_2(): import pandas as pd e = pd.bdate_range('19/3/2022', '26/03/2022',freq='B') #bdate_range 6 #date_range 8 print (e) minutes = len(e) print(minutes) weekday_2() def weekday_3(): import pandas as pd e = pd.bdate_range('2022-03-19', '2022-03-26') #bdate_range 6 #date_range 8 print (e) minutes = len(e) print(minutes) weekday_3() |
3 结语
date_range 默认的freq是'd'就是日期的意思,如果不带参数计算出来就是所有的天数,所有如果要用date_range计算工作日,必须要带freq='b'的参数,其他开始日期和结束日期的格式跟bdate_range一样。可以用于计算一段时间(不算周末)的工作日。