【python】+tushare库+判断指定日期是否是交易日

is_holiday方法:若是交易日 返回false;若不是交易日 返回true

https://www.zhihu.com/question/35835021

 1 import tushare
 2 import datetime
 3 
 4 
 5 class AIOldData:
 6     def ai_trading_day(self):
 7         """
 8 功能1:判断自然日是否是交易日(YES:返回此自然日;NO:从此自然日依次往前推至交易日 并返回)
 9 缺点:要计算10秒左右才出结果
10         :return:
11         """
12         date_str = "{}-{}-{}".format(self[0:4], self[4:6], self[6:8])
13         y, m, d = date_str.split("-")
14         my_date = datetime.date(int(y), int(m), int(d))
15 
16         # 判断日期是否是交易日
17         while True:
18             if tushare.is_holiday(datetime.date.strftime(my_date, "%Y-%m-%d")):
19                 # 不是交易日 则此日期减一天 再次循环判断
20                 my_date = my_date + datetime.timedelta(days=-1)
21             else:
22                 # 是交易日
23                 break
24         print("离{}最近的一个历史交易日为:{}".format(date_str, my_date))
25         return my_date
26 
27 
28 if __name__ == "__main__":
29     ai_old_data = AIOldData
30     ai_old_data.ai_trading_day("20191007")
31     ai_old_data.ai_trading_day("20191008")

输出:

离2019-10-07最近的一个历史交易日为:2019-09-30
离2019-10-08最近的一个历史交易日为:2019-10-08

原文地址:https://www.cnblogs.com/danhuai/p/11730028.html