一开始在网上找了很多api 要么就是api 已经失效了。 要么就是不是获取到的不是我想要的数据
最后在浏览一篇文章的时候,看到有人评论那里说python 有个库可以用。 于是我就找到了这个库
workalendar
,结果没想到这个库这么流批,全球好多国家的假日和工作日,都收录了。太好了呀~~
(目前里面收录的最新年份假期和工作日 是2020年,这也是没办法的,下一年的假日安排这些,也都还没有公布出来,公布了 他们应该会更新维护的~)
附上他们git的地址:
https://github.com/peopledoc/workalendar
文档地址:
https://peopledoc.github.io/workalendar/
下面是我自己用到的一些代码:
from datetime import date, datetime, timedelta
import calendar
# 导入包
from workalendar.asia import China
def get_weekday(x):
start_date = x + '-01'
# start_date
start_datetime = datetime.strptime(start_date, '%Y-%m-%d')
start_datetime_2 = datetime.date(start_datetime)
# 计算每月最后一天的date
days_in_month = start_datetime_2.replace(day=28) + timedelta(days=4)
# print( start_datetime_2.replace(day=28))
end_date = days_in_month - timedelta(days=days_in_month.day)
# print(start_datetime_2,end_date)
cal = China()
data = cal.get_working_days_delta(start_datetime_2,end_date)
return data
get_weekday(2020-05)
这样,我们就获取到了2020年5月份一共有19个工作日(补班那天他也算上了)
然后后面再算出5月份一共多少天,减去工作日,就得到法定假+周末的天数了(因为后面这个数据对我暂时没用,我就没写后面的代码了。小伙伴有需要的话,自己动动手写吧~)