Python计算一段时间的工作日(除周末)

1 问题

计算两个日期之间有几个工作日(除周末)、有几天(不除周末)。

2 方法

用python里pandas的函数实现。

start_day: 开始日期20220101

end_day:结束日期

freq:频率,bdate_range函数不带该参数时默认是'b',即工作日。计算工作日时,这个freq固定为B或b或者不带这个参数可以

代码清单 1

代码语言:text
复制
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一样。可以用于计算一段时间(不算周末)的工作日。