Python获取指定时间范围内的工作日、假日日、法定节假日
Python获取指定时间范围内的工作日、假日日、法定节假日
·
1 导库
import chinese_calendar
import datetime
import pandas as pd
2 指定时间范围
start_time = datetime.date(2021, 1, 1) # 指定开始时间
end_time = datetime.date(2022, 6, 30) # 指定结束时间
3 生成工作日
workdays = pd.DataFrame(chinese_calendar.get_workdays(start_time,end_time))
workdays = workdays.rename(columns={0:'日期'})
workdays['属性'] = '工作日'
workdays
日期 | 属性 | |
---|---|---|
0 | 2021-01-04 | 工作日 |
1 | 2021-01-05 | 工作日 |
2 | 2021-01-06 | 工作日 |
3 | 2021-01-07 | 工作日 |
4 | 2021-01-08 | 工作日 |
... | ... | ... |
367 | 2022-06-24 | 工作日 |
368 | 2022-06-27 | 工作日 |
369 | 2022-06-28 | 工作日 |
370 | 2022-06-29 | 工作日 |
371 | 2022-06-30 | 工作日 |
372 rows × 2 columns
4 生成假期日
hd = pd.DataFrame(chinese_calendar.get_holidays(start_time,end_time))
hd = hd.rename(columns={0:'日期'})
hd['属性'] = '假期'
hd
日期 | 属性 | |
---|---|---|
0 | 2021-01-01 | 假期 |
1 | 2021-01-02 | 假期 |
2 | 2021-01-03 | 假期 |
3 | 2021-01-09 | 假期 |
4 | 2021-01-10 | 假期 |
... | ... | ... |
169 | 2022-06-12 | 假期 |
170 | 2022-06-18 | 假期 |
171 | 2022-06-19 | 假期 |
172 | 2022-06-25 | 假期 |
173 | 2022-06-26 | 假期 |
174 rows × 2 columns
5 获取国家法定节假日
import requests
from bs4 import BeautifulSoup as BS
# 获取指定月份节假日
def get_holidays(year, month):
result = {}
url = f"https://www.rili.com.cn/wannianli/{year}/{month}/"
content = requests.get(url)
bs = BS(content.text)
holidays = ['春节','元旦','除夕','元宵节','清明节','劳动节','端午节','中秋节','国庆节']
tds = bs.find("table").find("table").find_all("td")
for td in tds:
if 'noby' in td['class']:
continue
day = td.select(".riwai>.ri")[0].text
name1 = td.select(".riwai>.jie")
name2 = td.select(".riwai>.r2")
if len(name1)>0:
name = name1[0].text
if len(name2)>0:
name = name2[0].text
if name in holidays:
result[f"{year}-{month}-{day}"] = name
return result
if __name__=="__main__":
holidays = {}
for year in range(2022, 2023):
for month in range(1, 13):
holidays.update(get_holidays(year,month))
print(holidays)
holidays = pd.DataFrame([holidays]).T.reset_index()
print(display(holidays.rename(columns={'index':'日期',0:'国家法定节假日'})))
{'2022-1-1': '元旦', '2022-1-31': '除夕', '2022-2-1': '春节', '2022-2-15': '元宵节', '2022-4-5': '清明节', '2022-5-1': '劳动节', '2022-6-3': '端午节', '2022-9-10': '中秋节', '2022-10-1': '国庆节'}
日期 | 国家法定节假日 | |
---|---|---|
0 | 2022-1-1 | 元旦 |
1 | 2022-1-31 | 除夕 |
2 | 2022-2-1 | 春节 |
3 | 2022-2-15 | 元宵节 |
4 | 2022-4-5 | 清明节 |
5 | 2022-5-1 | 劳动节 |
6 | 2022-6-3 | 端午节 |
7 | 2022-9-10 | 中秋节 |
8 | 2022-10-1 | 国庆节 |
更多推荐
已为社区贡献2条内容
所有评论(0)